diff --git a/tests/unit/daemon/name-server.cpp b/tests/unit/daemon/name-server.cpp
index 0e5f302..f2b64bb 100644
--- a/tests/unit/daemon/name-server.cpp
+++ b/tests/unit/daemon/name-server.cpp
@@ -311,9 +311,14 @@
   {
     // ensure prefix is registered
     run();
-    validatorFace->onSendInterest.connect([&] (const Interest& interest) {
+
+    validatorFace->onSendInterest.connect([this] (const Interest& interest) {
       NDNS_LOG_TRACE("validatorFace get Interest: " << interest.getName());
-      face->receive(interest);
+
+      shared_ptr<const Interest> i = interest.shared_from_this();
+      io.post([i, this] {
+          face->receive(*i);
+        });
     });
   }
 
@@ -386,9 +391,12 @@
   bool hasDataBack = false;
 
   shared_ptr<Regex> regex = make_shared<Regex>("(<>*)<KEY>(<>+)<ID-CERT><>");
-  face->onSendData.connectSingleShot([&] (const Data& data) {
+  face->onSendData.connect([&] (const Data& data) {
     if (regex->match(data.getName())) {
-      validatorFace->receive(data); // It's data requested by validator
+      shared_ptr<const Data> d = data.shared_from_this();
+      io.post([d, this] {
+          validatorFace->receive(*d); // It's data requested by validator
+        });
     }
     else {
       // cert is requested by validator
diff --git a/tests/unit/validator.cpp b/tests/unit/validator.cpp
index e51782b..09af09d 100644
--- a/tests/unit/validator.cpp
+++ b/tests/unit/validator.cpp
@@ -132,7 +132,9 @@
     NDNS_LOG_TRACE("validator needs: " << certName);
     BOOST_CHECK_EQUAL(m_keyChain.doesCertificateExist(certName), true);
     auto cert = m_keyChain.getCertificate(certName);
-    m_face->receive<Data>(*cert);
+    m_face->getIoService().post([this, cert] {
+        m_face->receive<Data>(*cert);
+      });
   }
 
 public:
