diff --git a/tools/ping/server/ping-server.cpp b/tools/ping/server/ping-server.cpp
index 9b1403d..4162b05 100644
--- a/tools/ping/server/ping-server.cpp
+++ b/tools/ping/server/ping-server.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2015-2018,  Arizona Board of Regents.
+ * Copyright (c) 2015-2019,  Arizona Board of Regents.
  *
  * This file is part of ndn-tools (Named Data Networking Essential Tools).
  * See AUTHORS.md for complete list of ndn-tools authors and contributors.
@@ -33,7 +33,6 @@
   , m_face(face)
   , m_keyChain(keyChain)
   , m_nPings(0)
-  , m_regPrefixId(nullptr)
 {
   auto b = make_shared<Buffer>();
   b->assign(m_options.payloadSize, 'a');
@@ -43,20 +42,18 @@
 void
 PingServer::start()
 {
-  m_regPrefixId = m_face.setInterestFilter(
-                    Name(m_options.prefix).append("ping"),
-                    bind(&PingServer::onInterest, this, _2),
-                    [] (const auto&, const auto& reason) {
-                      BOOST_THROW_EXCEPTION(std::runtime_error("Failed to register prefix: " + reason));
-                    });
+  m_registeredPrefix = m_face.setInterestFilter(
+                       Name(m_options.prefix).append("ping"),
+                       bind(&PingServer::onInterest, this, _2),
+                       [] (const auto&, const auto& reason) {
+                         BOOST_THROW_EXCEPTION(std::runtime_error("Failed to register prefix: " + reason));
+                       });
 }
 
 void
 PingServer::stop()
 {
-  if (m_regPrefixId != nullptr) {
-    m_face.unsetInterestFilter(m_regPrefixId);
-  }
+  m_registeredPrefix.cancel();
 }
 
 size_t
