diff --git a/daemon/mgmt/face-manager.cpp b/daemon/mgmt/face-manager.cpp
index daba08e..712d096 100644
--- a/daemon/mgmt/face-manager.cpp
+++ b/daemon/mgmt/face-manager.cpp
@@ -1158,7 +1158,7 @@
       !FACES_QUERY_DATASET_PREFIX.isPrefixOf(query))
     {
       NFD_LOG_DEBUG("query result: malformed");
-      //sendNack(query);
+      sendNack(query);
       return;
     }
 
@@ -1170,7 +1170,7 @@
   catch (tlv::Error&)
     {
       NFD_LOG_DEBUG("query result: malformed filter");
-      //sendNack(query);
+      sendNack(query);
       return;
     }
 
diff --git a/daemon/mgmt/manager-base.cpp b/daemon/mgmt/manager-base.cpp
index da553a5..cf75d04 100644
--- a/daemon/mgmt/manager-base.cpp
+++ b/daemon/mgmt/manager-base.cpp
@@ -99,21 +99,20 @@
   m_face->put(*responseData);
 }
 
-// for future commit
-//void
-//ManagerBase::sendNack(const Name& name)
-//{
-//  NFD_LOG_DEBUG("responding NACK to " << name);
-//
-//  ndn::MetaInfo meta;
-//  meta.setType(ndn::tlv::ContentType_Nack);
-//
-//  shared_ptr<Data> responseData(make_shared<Data>(name));
-//  responseData->setMetaInfo(meta);
-//
-//  m_keyChain.sign(*responseData);
-//  m_face->put(*responseData);
-//}
+void
+ManagerBase::sendNack(const Name& name)
+{
+  NFD_LOG_DEBUG("responding NACK to " << name);
+
+  ndn::MetaInfo meta;
+  meta.setType(tlv::ContentType_Nack);
+
+  shared_ptr<Data> responseData(make_shared<Data>(name));
+  responseData->setMetaInfo(meta);
+
+  m_keyChain.sign(*responseData);
+  m_face->put(*responseData);
+}
 
 bool
 ManagerBase::validateParameters(const ControlCommand& command,
diff --git a/daemon/mgmt/manager-base.hpp b/daemon/mgmt/manager-base.hpp
index feaa54a..1611615 100644
--- a/daemon/mgmt/manager-base.hpp
+++ b/daemon/mgmt/manager-base.hpp
@@ -94,8 +94,8 @@
                const std::string& text,
                const Block& body);
 
-  //void
-  //sendNack(const Name& name);
+  void
+  sendNack(const Name& name);
 
   virtual bool
   validateParameters(const ControlCommand& command,
diff --git a/tests/daemon/mgmt/face-manager.cpp b/tests/daemon/mgmt/face-manager.cpp
index 966844a..2b2a15e 100644
--- a/tests/daemon/mgmt/face-manager.cpp
+++ b/tests/daemon/mgmt/face-manager.cpp
@@ -1813,23 +1813,23 @@
   BOOST_REQUIRE(m_finished);
 }
 
-//BOOST_FIXTURE_TEST_CASE(TestInvalidQueryFilter, FaceQueryListFixture)
-//{
-//  Name queryName("/localhost/nfd/faces/query");
-//  ndn::nfd::FaceStatus queryFilter;
-//  queryName.append(queryFilter.wireEncode());
-//
-//  shared_ptr<Interest> query(make_shared<Interest>(queryName));
-//
-//  shared_ptr<DummyLocalFace> face(make_shared<DummyLocalFace>());
-//  add(face);
-//
-//  m_face->onReceiveData +=
-//    bind(&FaceQueryStatusPublisherFixture::decodeNackBlock, this, _1);
-//
-//  m_manager.listQueriedFaces(*query);
-//  BOOST_REQUIRE(m_finished);
-//}
+BOOST_FIXTURE_TEST_CASE(TestInvalidQueryFilter, FaceQueryListFixture)
+{
+  Name queryName("/localhost/nfd/faces/query");
+  ndn::nfd::FaceStatus queryFilter;
+  queryName.append(queryFilter.wireEncode());
+
+  shared_ptr<Interest> query(make_shared<Interest>(queryName));
+
+  shared_ptr<DummyLocalFace> face(make_shared<DummyLocalFace>());
+  add(face);
+
+  m_face->onReceiveData +=
+    bind(&FaceQueryStatusPublisherFixture::decodeNackBlock, this, _1);
+
+  m_manager.listQueriedFaces(*query);
+  BOOST_REQUIRE(m_finished);
+}
 
 BOOST_AUTO_TEST_SUITE_END()
 
diff --git a/tests/daemon/mgmt/face-query-status-publisher-common.hpp b/tests/daemon/mgmt/face-query-status-publisher-common.hpp
index a0e4070..a274c52 100644
--- a/tests/daemon/mgmt/face-query-status-publisher-common.hpp
+++ b/tests/daemon/mgmt/face-query-status-publisher-common.hpp
@@ -133,13 +133,13 @@
     m_finished = true;
   }
 
-  //void
-  //decodeNackBlock(const Data& data)
-  //{
-  //  BOOST_REQUIRE_EQUAL(data.getContentType(), ndn::tlv::ContentType_Nack);
+  void
+  decodeNackBlock(const Data& data)
+  {
+    BOOST_REQUIRE_EQUAL(data.getContentType(), tlv::ContentType_Nack);
 
-  //  m_finished = true;
-  //}
+    m_finished = true;
+  }
 
 protected:
   Forwarder m_forwarder;
