diff --git a/src/update/nfd-rib-command-processor.cpp b/src/update/nfd-rib-command-processor.cpp
index f4baeb5..e90503a 100644
--- a/src/update/nfd-rib-command-processor.cpp
+++ b/src/update/nfd-rib-command-processor.cpp
@@ -33,12 +33,10 @@
 
 NfdRibCommandProcessor::NfdRibCommandProcessor(ndn::mgmt::Dispatcher& dispatcher,
                                                NamePrefixList& namePrefixes,
-                                               Lsdb& lsdb,
-                                               SyncLogicHandler& sync)
+                                               Lsdb& lsdb)
   : m_dispatcher(dispatcher)
   , m_namePrefixList(namePrefixes)
   , m_lsdb(lsdb)
-  , m_sync(sync)
 {
 }
 
@@ -96,7 +94,6 @@
 
   if (m_namePrefixList.insert(castParams.getName())) {
     m_lsdb.buildAndInstallOwnNameLsa();
-    m_sync.publishRoutingUpdate();
   }
 }
 
@@ -110,7 +107,6 @@
 
   if (m_namePrefixList.remove(castParams.getName())) {
     m_lsdb.buildAndInstallOwnNameLsa();
-    m_sync.publishRoutingUpdate();
   }
 }
 
diff --git a/src/update/nfd-rib-command-processor.hpp b/src/update/nfd-rib-command-processor.hpp
index a022b58..239d349 100644
--- a/src/update/nfd-rib-command-processor.hpp
+++ b/src/update/nfd-rib-command-processor.hpp
@@ -26,7 +26,6 @@
 #include "nfd-rib-commands.hpp"
 #include "name-prefix-list.hpp"
 #include "lsdb.hpp"
-#include "communication/sync-logic-handler.hpp"
 
 #include <ndn-cxx/mgmt/nfd/control-command.hpp>
 #include <ndn-cxx/mgmt/nfd/control-parameters.hpp>
@@ -55,8 +54,7 @@
 public:
   NfdRibCommandProcessor(ndn::mgmt::Dispatcher& dispatcher,
                          NamePrefixList& namePrefixes,
-                         Lsdb& lsdb,
-                         SyncLogicHandler& sync);
+                         Lsdb& lsdb);
 
   /*! \brief Registers an Interest filter with face
 
@@ -116,7 +114,6 @@
   ndn::mgmt::Dispatcher& m_dispatcher;
   NamePrefixList& m_namePrefixList;
   Lsdb& m_lsdb;
-  SyncLogicHandler& m_sync;
 };
 
 } // namespace update
diff --git a/src/update/prefix-update-processor.cpp b/src/update/prefix-update-processor.cpp
index e0c8f3b..ad1f9a6 100644
--- a/src/update/prefix-update-processor.cpp
+++ b/src/update/prefix-update-processor.cpp
@@ -24,7 +24,6 @@
 #include "lsdb.hpp"
 #include "nlsr.hpp"
 #include "prefix-update-commands.hpp"
-#include "communication/sync-logic-handler.hpp"
 
 #include <ndn-cxx/mgmt/nfd/control-response.hpp>
 
@@ -40,7 +39,6 @@
 PrefixUpdateProcessor::PrefixUpdateProcessor(ndn::Face& face,
                                              NamePrefixList& namePrefixList,
                                              Lsdb& lsdb,
-                                             SyncLogicHandler& sync,
                                              const ndn::Name broadcastPrefix,
                                              ndn::KeyChain& keyChain,
                                              std::shared_ptr<ndn::CertificateCacheTtl> certificateCache,
@@ -48,7 +46,6 @@
   : m_face(face)
   , m_namePrefixList(namePrefixList)
   , m_lsdb(lsdb)
-  , m_sync(sync)
   , m_keyChain(keyChain)
   , m_validator(m_face, broadcastPrefix, certificateCache, certStore)
   , m_isEnabled(false)
@@ -153,7 +150,6 @@
   if (m_namePrefixList.insert(parameters.getName())) {
     // Only build a Name LSA if the added name is new
     m_lsdb.buildAndInstallOwnNameLsa();
-    m_sync.publishRoutingUpdate();
   }
 }
 
@@ -173,7 +169,6 @@
   if (m_namePrefixList.remove(parameters.getName())) {
     // Only build a Name LSA if a name was actually removed
     m_lsdb.buildAndInstallOwnNameLsa();
-    m_sync.publishRoutingUpdate();
   }
 }
 
diff --git a/src/update/prefix-update-processor.hpp b/src/update/prefix-update-processor.hpp
index 4f08bc7..f1a5b50 100644
--- a/src/update/prefix-update-processor.hpp
+++ b/src/update/prefix-update-processor.hpp
@@ -39,7 +39,6 @@
 namespace nlsr {
 
 class Lsdb;
-class SyncLogicHandler;
 
 namespace security {
   class CertificateStore;
@@ -66,7 +65,6 @@
   PrefixUpdateProcessor(ndn::Face& face,
                         NamePrefixList& namePrefixList,
                         Lsdb& lsdb,
-                        SyncLogicHandler& sync,
                         const ndn::Name broadcastPrefix,
                         ndn::KeyChain& keyChain,
                         std::shared_ptr<ndn::CertificateCacheTtl> certificateCache,
@@ -134,7 +132,6 @@
   ndn::Face& m_face;
   NamePrefixList& m_namePrefixList;
   Lsdb& m_lsdb;
-  SyncLogicHandler& m_sync;
   ndn::KeyChain& m_keyChain;
   Validator m_validator;
   bool m_isEnabled;
