diff --git a/src/handles/read-handle.cpp b/src/handles/read-handle.cpp
index dbdfef7..2eb5981 100644
--- a/src/handles/read-handle.cpp
+++ b/src/handles/read-handle.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2018, Regents of the University of California.
+ * Copyright (c) 2014-2019, Regents of the University of California.
  *
  * This file is part of NDN repo-ng (Next generation of NDN repository).
  * See AUTHORS.md for complete list of repo-ng authors and contributors.
@@ -89,7 +89,7 @@
   auto check = m_insertedDataPrefixes.find(prefix);
   if (check != m_insertedDataPrefixes.end()) {
     if (--(check->second.useCount) <= 0) {
-      m_face.unsetInterestFilter(check->second.prefixId);
+      check->second.hdl.unregister();
       m_insertedDataPrefixes.erase(prefix);
     }
   }
@@ -110,7 +110,7 @@
     // everything down, anyway. If registration failures are ever
     // considered to be recoverable, we would need to make this
     // atomic.
-    const ndn::RegisteredPrefixId* prefixId = m_face.setInterestFilter(filter,
+    auto hdl = m_face.setInterestFilter(filter,
       [this] (const ndn::InterestFilter& filter, const Interest& interest) {
         // Implicit conversion to Name of filter
         onInterest(filter, interest);
@@ -119,7 +119,7 @@
       [this] (const Name& prefix, const std::string& reason) {
         onRegisterFailed(prefix, reason);
       });
-    RegisteredDataPrefix registeredPrefix{prefixId, 1};
+    RegisteredDataPrefix registeredPrefix{hdl, 1};
     // Newly registered prefix
     m_insertedDataPrefixes.emplace(std::make_pair(prefixToRegister, registeredPrefix));
   }
diff --git a/src/handles/read-handle.hpp b/src/handles/read-handle.hpp
index bdd6b6f..753e3d4 100644
--- a/src/handles/read-handle.hpp
+++ b/src/handles/read-handle.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2018, Regents of the University of California.
+ * Copyright (c) 2014-2019, Regents of the University of California.
  *
  * This file is part of NDN repo-ng (Next generation of NDN repository).
  * See AUTHORS.md for complete list of repo-ng authors and contributors.
@@ -37,7 +37,7 @@
   using DataPrefixUnregistrationCallback = std::function<void(const ndn::Name&)>;
   struct RegisteredDataPrefix
   {
-    const ndn::RegisteredPrefixId* prefixId;
+    ndn::RegisteredPrefixHandle hdl;
     int useCount;
   };
 
