diff --git a/include/sync-seq-no.h b/include/sync-seq-no.h
index 7814f91..e2ed016 100644
--- a/include/sync-seq-no.h
+++ b/include/sync-seq-no.h
@@ -156,6 +156,13 @@
    */
   uint32_t getSeq () const
   { return m_seq; }
+
+  /**
+   * @brief Set sequence number
+   */
+   void
+   setSeq(uint32_t seq)
+   { m_seq = seq; }
   
 private:
   bool m_valid;
diff --git a/include/sync-state.h b/include/sync-state.h
index 2c7b43b..54ac9d9 100644
--- a/include/sync-state.h
+++ b/include/sync-state.h
@@ -43,7 +43,7 @@
  * No corresponding data msg would be published and no attempt would be made to retrieve the 
  * data msg
  */
-const string dummyPrefix = "/d0n0t18ak/t0ps8cr8t";
+const std::string forwarderPrefix = "/d0n0t18ak/t0ps8cr8t";
 
 class State;
 typedef boost::shared_ptr<State> StatePtr;
diff --git a/model/sync-logic.cc b/model/sync-logic.cc
index c013355..48c1d81 100644
--- a/model/sync-logic.cc
+++ b/model/sync-logic.cc
@@ -293,7 +293,7 @@
           BOOST_ASSERT (diffLeaf != 0);
 
           NameInfoConstPtr info = diffLeaf->getInfo();
-          if (diffLeaf->getOperation() == UPDATE)
+          if (diffLeaf->getOperation() == UPDATE && info->toString() != forwarderPrefix)
             {
               SeqNo seq = diffLeaf->getSeq();
 
@@ -328,7 +328,7 @@
             }
           else
             {
-              BOOST_ASSERT (false); // just in case
+              BOOST_ASSERT (info->toString() == forwarderPrefix); // just in case
             }
         }
 
@@ -466,8 +466,19 @@
     NameInfoConstPtr info = StdNameInfo::FindOrCreate(prefix);
     m_state->remove(info);	
 
+    // increment the sequence number for the forwarder node
+    NameInfoConstPtr forwarderInfo = StdNameInfo::FindOrCreate(forwarderPrefix);
+    bool inserted = false;
+    bool updated = false;
+    SeqNo oldSeq;
+    tie (inserted, updated, oldSeq) = m_state->update (forwarderInfo, oldSeq);
+    oldSeq.setSeq(oldSeq.getSeq() + 1);
+    m_state->update(info, oldSeq);
+
+
     diff = make_shared<DiffState>();
     diff->remove(info);
+    diff->update(forwarderInfo, oldSeq);
 
     insertToDiffLog (diff);
   }
diff --git a/test/test_sync_logic.cc b/test/test_sync_logic.cc
index 2cfde28..61ca626 100644
--- a/test/test_sync_logic.cc
+++ b/test/test_sync_logic.cc
@@ -76,6 +76,9 @@
   Handler h1 ("1");
 
   SyncLogic l1 ("/bcast", bind (&Handler::wrapper, &h1, _1), bind (&Handler::onRemove, &h1, _1));
+
+  std::string oldDigest  = l1.getRootDigest();
+  
   l1.addLocalNames ("/one", 1, 2);
 
   BOOST_CHECK_EQUAL (h1.m_map.size (), 0);
@@ -89,8 +92,9 @@
   BOOST_CHECK_EQUAL (h1.m_map.size (), 0);
   BOOST_CHECK_EQUAL (h2.m_map.size (), 1);
   
-  // l1.remove ("/one");
+  l1.remove ("/one");
+  sleep(1);
+  std::string newDigest = l1.getRootDigest();
+  BOOST_CHECK(oldDigest != newDigest);
 
-  // sleep (10);
-// l1.  
 }
