diff --git a/src/ccnx/sync-app-socket.cc b/src/ccnx/sync-app-socket.cc
index 3bc6954..0e4e829 100644
--- a/src/ccnx/sync-app-socket.cc
+++ b/src/ccnx/sync-app-socket.cc
@@ -1,4 +1,4 @@
-/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil -*- */
+/* -*- Mode: C32++; c-file-style: "gnu"; indent-tabs-mode:nil -*- */
 /*
  * Copyright (c) 2012 University of California, Los Angeles
  *
@@ -29,8 +29,8 @@
 {
 
 SyncAppSocket::SyncAppSocket (const string &syncPrefix, NewDataCallback dataCallback, RemoveCallback rmCallback )
-  : m_ccnxHandle (new CcnxWrapper())
-  , m_newDataCallback(dataCallback)
+  : m_newDataCallback(dataCallback)
+  , m_ccnxHandle (new CcnxWrapper())
   , m_syncLogic (syncPrefix,
                  bind(&SyncAppSocket::passCallback, this, _1),
                  rmCallback)
@@ -61,6 +61,7 @@
   m_sequenceLog[prefix] = s;
 
   m_syncLogic.addLocalNames (prefix, session, sequence);
+  return true;
 }
 
 bool 
@@ -75,6 +76,7 @@
   SeqNo s(session, sequence + 1);
   m_sequenceLog[prefix] = s;
   m_syncLogic.addLocalNames (prefix, session, sequence);
+  return true;
 }
 
 
diff --git a/src/ccnx/sync-ccnx-wrapper.cc b/src/ccnx/sync-ccnx-wrapper.cc
index b742548..c824e72 100644
--- a/src/ccnx/sync-ccnx-wrapper.cc
+++ b/src/ccnx/sync-ccnx-wrapper.cc
@@ -26,7 +26,7 @@
 #include <ccn/fetch.h>
 }
 
-#include "sync-log.h"
+#include "sync-logging.h"
 #include <poll.h>
 #include <boost/throw_exception.hpp>
 #include <boost/date_time/posix_time/posix_time.hpp>
@@ -245,7 +245,7 @@
 /// @endcond
 int
 CcnxWrapper::publishStringData (const string &name, const string &dataBuffer, int freshness) {
-  publishRawData(name, dataBuffer.c_str(), dataBuffer.length(), freshness);
+  return publishRawData(name, dataBuffer.c_str(), dataBuffer.length(), freshness);
 }
 
 int
@@ -384,13 +384,13 @@
 int CcnxWrapper::sendInterestForString (const string &strInterest, const StringDataCallback &strDataCallback, int retry)
 {
   DataClosurePass * pass = new DataClosurePass(STRING_FORM, retry, strDataCallback);
-  sendInterest(strInterest, pass);
+  return sendInterest(strInterest, pass);
 }
 
 int CcnxWrapper::sendInterest (const string &strInterest, const RawDataCallback &rawDataCallback, int retry)
 {
   RawDataClosurePass * pass = new RawDataClosurePass(RAW_DATA, retry, rawDataCallback);
-  sendInterest(strInterest, pass);
+  return sendInterest(strInterest, pass);
 }
 
 int CcnxWrapper::sendInterest (const string &strInterest, void *dataPass)
@@ -439,6 +439,8 @@
 
   m_registeredInterests.insert(pair<std::string, InterestCallback>(prefix, interestCallback));
   ccn_charbuf_destroy(&pname);
+
+  return 0;
 }
 
 void
