diff --git a/src/communication/sync-logic-handler.cpp b/src/communication/sync-logic-handler.cpp
index 5f87436..94ac76b 100644
--- a/src/communication/sync-logic-handler.cpp
+++ b/src/communication/sync-logic-handler.cpp
@@ -141,9 +141,6 @@
   , m_confParam(conf)
   , m_sequencingManager(seqManager)
 {
-  m_updatePrefix = m_confParam.getLsaPrefix();
-  m_updatePrefix.append(m_confParam.getSiteName());
-  m_updatePrefix.append(m_confParam.getRouterName());
 }
 
 void
@@ -269,6 +266,14 @@
 }
 
 void
+SyncLogicHandler::buildUpdatePrefix()
+{
+  m_updatePrefix = m_confParam.getLsaPrefix();
+  m_updatePrefix.append(m_confParam.getSiteName());
+  m_updatePrefix.append(m_confParam.getRouterName());
+}
+
+void
 SyncLogicHandler::publishSyncUpdate(const ndn::Name& updatePrefix, uint64_t seqNo)
 {
   _LOG_DEBUG("Publishing Sync Update. Prefix: " << updatePrefix << " Seq No: " << seqNo);
diff --git a/src/communication/sync-logic-handler.hpp b/src/communication/sync-logic-handler.hpp
index e602037..6a2c443 100644
--- a/src/communication/sync-logic-handler.hpp
+++ b/src/communication/sync-logic-handler.hpp
@@ -29,6 +29,8 @@
 #include <unistd.h>
 #include <boost/cstdint.hpp>
 
+#include "test-access-control.hpp"
+
 class InterestManager;
 
 namespace nlsr {
@@ -62,6 +64,9 @@
     m_syncPrefix.set(sp);
   }
 
+  void
+  buildUpdatePrefix();
+
 private:
   void
   processUpdateFromSync(const SyncUpdate& updateName);
@@ -81,12 +86,15 @@
   ndn::shared_ptr<Sync::SyncSocket> m_syncSocket;
   ndn::Name m_syncPrefix;
 
+private:
   Lsdb& m_lsdb;
   ConfParameter& m_confParam;
   const SequencingManager& m_sequencingManager;
 
+PUBLIC_WITH_TESTS_ELSE_PRIVATE:
   ndn::Name m_updatePrefix;
 
+private:
   static const std::string NLSR_COMPONENT;
   static const std::string LSA_COMPONENT;
   static const std::string NAME_COMPONENT;
diff --git a/src/nlsr.cpp b/src/nlsr.cpp
index 19bb3cf..cf26a7b 100644
--- a/src/nlsr.cpp
+++ b/src/nlsr.cpp
@@ -128,7 +128,10 @@
   m_fib.setEntryRefreshTime(2 * m_confParam.getLsaRefreshTime());
   m_sequencingManager.setSeqFileName(m_confParam.getSeqFileDir());
   m_sequencingManager.initiateSeqNoFromFile();
+
   m_syncLogicHandler.setSyncPrefix(m_confParam.getChronosyncPrefix().toUri());
+  m_syncLogicHandler.buildUpdatePrefix();
+
   /* Logging start */
   m_confParam.writeLog();
   m_adjacencyList.writeLog();
diff --git a/tests/test-sync-logic-handler.cpp b/tests/test-sync-logic-handler.cpp
index c229f35..dddbf1d 100644
--- a/tests/test-sync-logic-handler.cpp
+++ b/tests/test-sync-logic-handler.cpp
@@ -37,7 +37,7 @@
   SyncLogicFixture()
     : face(ndn::makeDummyFace())
     , nlsr(g_ioService, g_scheduler, ndn::ref(*face))
-    , sync(*face, nlsr.getLsdb(), nlsr.getConfParameter(), nlsr.getSequencingManager())
+    , sync(nlsr.getSyncLogicHandler())
     , CONFIG_NETWORK("/ndn")
     , CONFIG_SITE("/site")
     , CONFIG_ROUTER_NAME("/%C1.Router/this-router")
@@ -67,7 +67,7 @@
 public:
   shared_ptr<DummyFace> face;
   Nlsr nlsr;
-  SyncLogicHandler sync;
+  SyncLogicHandler& sync;
 
   const std::string CONFIG_NETWORK;
   const std::string CONFIG_SITE;
@@ -166,6 +166,17 @@
   BOOST_CHECK_EQUAL(it->getName().getPrefix(-1), updateName + "name/");
 }
 
+BOOST_AUTO_TEST_CASE(UpdatePrefix)
+{
+  ndn::Name expectedPrefix = nlsr.getConfParameter().getLsaPrefix();
+  expectedPrefix.append(CONFIG_SITE);
+  expectedPrefix.append(CONFIG_ROUTER_NAME);
+
+  nlsr.initialize();
+
+  BOOST_CHECK_EQUAL(sync.m_updatePrefix, expectedPrefix);
+}
+
 BOOST_AUTO_TEST_SUITE_END()
 
 } // namespace test
