diff --git a/src/util/in-memory-storage.cpp b/src/util/in-memory-storage.cpp
index d294dd6..9c3146f 100644
--- a/src/util/in-memory-storage.cpp
+++ b/src/util/in-memory-storage.cpp
@@ -104,8 +104,7 @@
   // evict all items from cache
   Cache::iterator it = m_cache.begin();
   while (it != m_cache.end()) {
-    freeEntry(it);
-    it++;
+    it = freeEntry(it);
   }
 
   BOOST_ASSERT(m_freeEntries.size() == m_capacity);
@@ -319,13 +318,14 @@
   return 0;
 }
 
-void
-InMemoryStorage::freeEntry(Cache::index<byFullName>::type::iterator it) {
+InMemoryStorage::Cache::iterator
+InMemoryStorage::freeEntry(Cache::iterator it)
+{
   //push the *empty* entry into mem pool
   (*it)->release();
   m_freeEntries.push(*it);
   m_nPackets--;
-  m_cache.get<byFullName>().erase(it);
+  return m_cache.erase(it);
 }
 
 void
@@ -334,14 +334,10 @@
   if (isPrefix) {
     Cache::index<byFullName>::type::iterator it = m_cache.get<byFullName>().lower_bound(prefix);
 
-    if (it == m_cache.get<byFullName>().end())
-      return;
-
     while (it != m_cache.get<byFullName>().end() && prefix.isPrefixOf((*it)->getName())) {
       //let derived class do something with the entry
       beforeErase(*it);
-      freeEntry(it);
-      it++;
+      it = freeEntry(it);
     }
   }
   else {
diff --git a/src/util/in-memory-storage.hpp b/src/util/in-memory-storage.hpp
index b9fb9da..9bec775 100644
--- a/src/util/in-memory-storage.hpp
+++ b/src/util/in-memory-storage.hpp
@@ -270,9 +270,10 @@
 
 NDN_CXX_PUBLIC_WITH_TESTS_ELSE_PRIVATE:
   /** @brief free in-memory storage entries by an iterator pointing to that entry.
-    */
-  void
-  freeEntry(Cache::index<byFullName>::type::iterator it);
+      @return An iterator pointing to the element that followed the last element erased.
+   */
+  Cache::iterator
+  freeEntry(Cache::iterator it);
 
   /** @brief Implements child selector (leftmost, rightmost, undeclared).
    *  Operates on the first layer of a skip list.
