diff --git a/daemon/fw/asf-measurements.hpp b/daemon/fw/asf-measurements.hpp
index c6ff096..ba858df 100644
--- a/daemon/fw/asf-measurements.hpp
+++ b/daemon/fw/asf-measurements.hpp
@@ -215,10 +215,15 @@
   void
   extendFaceInfoLifetime(FaceInfo& info, const Face& face);
 
-  FaceInfo&
+  FaceInfo*
   get(nfd::face::FaceId faceId)
   {
-    return m_fit.at(faceId);
+    if (m_fit.find(faceId) != m_fit.end()) {
+      return &m_fit.at(faceId);
+    }
+    else {
+      return nullptr;
+    }
   }
 
   FaceInfoTable::iterator
diff --git a/daemon/fw/asf-strategy.cpp b/daemon/fw/asf-strategy.cpp
index 45b0d72..871ff2f 100644
--- a/daemon/fw/asf-strategy.cpp
+++ b/daemon/fw/asf-strategy.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2014-2016,  Regents of the University of California,
+ * Copyright (c) 2014-2017,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -97,6 +97,8 @@
     return;
   }
 
+  NFD_LOG_TRACE("Forwarding interest to face: " << faceToUse->getId());
+
   forwardInterest(interest, fibEntry, pitEntry, *faceToUse);
 
   // If necessary, send probe
@@ -123,14 +125,17 @@
   }
 
   // Record the RTT between the Interest out to Data in
-  FaceInfo& faceInfo = namespaceInfo->get(inFace.getId());
-  faceInfo.recordRtt(pitEntry, inFace);
+  FaceInfo* faceInfo = namespaceInfo->get(inFace.getId());
+  if (faceInfo == nullptr) {
+    return;
+  }
+  faceInfo->recordRtt(pitEntry, inFace);
 
   // Extend lifetime for measurements associated with Face
-  namespaceInfo->extendFaceInfoLifetime(faceInfo, inFace);
+  namespaceInfo->extendFaceInfoLifetime(*faceInfo, inFace);
 
-  if (faceInfo.isTimeoutScheduled()) {
-    faceInfo.cancelTimeoutEvent(data.getName());
+  if (faceInfo->isTimeoutScheduled()) {
+    faceInfo->cancelTimeoutEvent(data.getName());
   }
 }
 
