diff --git a/model/sync-logic.cc b/model/sync-logic.cc
index 0fd41af..13b66f5 100644
--- a/model/sync-logic.cc
+++ b/model/sync-logic.cc
@@ -126,8 +126,10 @@
   BOOST_ASSERT (name.find (m_syncPrefix) == 0);
 
   string hash = name.substr (m_syncPrefix.size (), name.size ()-m_syncPrefix.size ());
+  if (hash[0] == '/')
+    hash = hash.substr (1, hash.size ()-1);
   string interestType = "normal";
-  
+
   size_t pos = hash.find ('/');
   if (pos != string::npos)
     {
@@ -299,19 +301,24 @@
     }
   catch (Error::SyncXmlDecodingFailure &e)
     {
+      _LOG_TRACE ("Something really fishy happened during state decoding " <<
+                  diagnostic_information (e));
       diffLog.reset ();
       // don't do anything
     }
 
-  BOOST_ASSERT (diffLog->getLeaves ().size () > 0);
+  if (diffLog != 0)
+    {
+      BOOST_ASSERT (diffLog->getLeaves ().size () > 0);
 
-  satisfyPendingSyncInterests (diffLog); // if there are interests in PIT, there is a point to satisfy them using new state
+      satisfyPendingSyncInterests (diffLog); // if there are interests in PIT, there is a point to satisfy them using new state
   
-  // if state has changed, then it is safe to express a new interest
-  m_scheduler.cancel (REEXPRESSING_INTEREST);
-  m_scheduler.schedule (TIME_SECONDS_WITH_JITTER (0),
-                        bind (&SyncLogic::sendSyncInterest, this),
-                        REEXPRESSING_INTEREST);
+      // if state has changed, then it is safe to express a new interest
+      m_scheduler.cancel (REEXPRESSING_INTEREST);
+      m_scheduler.schedule (TIME_SECONDS_WITH_JITTER (0),
+                            bind (&SyncLogic::sendSyncInterest, this),
+                            REEXPRESSING_INTEREST);
+    }
 }
 
 void
@@ -422,9 +429,12 @@
 void
 SyncLogic::sendSyncData (const std::string &name, DigestConstPtr digest, StateConstPtr state)
 {
-
   // sending
+  m_ccnxHandle->publishData (name,
+                             lexical_cast<string> (*state),
+                             m_syncResponseFreshness); // in NS-3 it doesn't have any effect... yet
 
+  // checking if our own interest got satisfied
   bool satisfiedOwnInterest = false;
   {
     recursive_mutex::scoped_lock lock (m_stateMutex);
