diff --git a/utils/dummy-keychain.cpp b/utils/dummy-keychain.cpp
index fefc86e..632e6be 100644
--- a/utils/dummy-keychain.cpp
+++ b/utils/dummy-keychain.cpp
@@ -21,6 +21,7 @@
 
 #include <ndn-cxx/util/io.hpp>
 #include <boost/iostreams/device/array.hpp>
+#include <boost/iostreams/stream.hpp>
 
 namespace ndn {
 namespace security {
@@ -119,7 +120,7 @@
 KeyType
 DummyPublicInfo::getPublicKeyType(const Name& keyName)
 {
-  return KEY_TYPE_RSA;
+  return KeyType::RSA;
 }
 
 bool
@@ -141,7 +142,7 @@
     typedef boost::iostreams::stream<boost::iostreams::array_source> arrayStream;
     arrayStream
     is(reinterpret_cast<const char*>(DUMMY_CERT), sizeof(DUMMY_CERT));
-    cert = io::load<IdentityCertificate>(is, io::BASE_64);
+    cert = io::load<IdentityCertificate>(is, io::BASE64);
   }
 
   return cert;
diff --git a/utils/dummy-keychain.hpp b/utils/dummy-keychain.hpp
index 4a1c0fd..c76b95c 100644
--- a/utils/dummy-keychain.hpp
+++ b/utils/dummy-keychain.hpp
@@ -21,6 +21,7 @@
 #define NDNSIM_UTILS_DUMMY_KEYCHAIN_HPP
 
 #include <ndn-cxx/security/key-chain.hpp>
+#include <ndn-cxx/security/security-common.hpp>
 
 namespace ndn {
 namespace security {
diff --git a/utils/tracers/ndn-l3-rate-tracer.cpp b/utils/tracers/ndn-l3-rate-tracer.cpp
index 8d27225..efb09b1 100644
--- a/utils/tracers/ndn-l3-rate-tracer.cpp
+++ b/utils/tracers/ndn-l3-rate-tracer.cpp
@@ -334,11 +334,11 @@
   // no "size" stats
 
   for (const auto& in : entry.getInRecords()) {
-    std::get<0>(m_stats[in.getFace()]).m_satisfiedInterests ++;
+    std::get<0>(m_stats[(in.getFace()).shared_from_this()]).m_satisfiedInterests ++;
   }
 
   for (const auto& out : entry.getOutRecords()) {
-    std::get<0>(m_stats[out.getFace()]).m_outSatisfiedInterests ++;
+    std::get<0>(m_stats[(out.getFace()).shared_from_this()]).m_outSatisfiedInterests ++;
   }
 }
 
@@ -349,11 +349,11 @@
   // no "size" stats
 
   for (const auto& in : entry.getInRecords()) {
-    std::get<0>(m_stats[in.getFace()]).m_timedOutInterests++;
+    std::get<0>(m_stats[(in.getFace()).shared_from_this()]).m_timedOutInterests++;
   }
 
   for (const auto& out : entry.getOutRecords()) {
-    std::get<0>(m_stats[out.getFace()]).m_outTimedOutInterests++;
+    std::get<0>(m_stats[(out.getFace()).shared_from_this()]).m_outTimedOutInterests++;
   }
 }
 
