diff --git a/utils/stats/load-stats-node.cc b/utils/stats/load-stats-node.cc
index 39e9d60..743f764 100644
--- a/utils/stats/load-stats-node.cc
+++ b/utils/stats/load-stats-node.cc
@@ -93,6 +93,26 @@
 }
 
 void
+LoadStatsNode::RemoveFromStats ()
+{
+  m_pit.count ()--;
+  
+  for (stats_container::iterator item = m_incoming.begin ();
+       item != m_incoming.end ();
+       item ++)
+    {
+      item->second.count ()--;
+    }
+
+  for (stats_container::iterator item = m_outgoing.begin ();
+       item != m_outgoing.end ();
+       item ++)
+    {
+      item->second.count ()--;
+    }
+}
+
+void
 LoadStatsNode::Timeout ()
 {
   m_pit.unsatisfied ()++;
diff --git a/utils/stats/load-stats-node.h b/utils/stats/load-stats-node.h
index 365db55..135c5f0 100644
--- a/utils/stats/load-stats-node.h
+++ b/utils/stats/load-stats-node.h
@@ -71,6 +71,12 @@
   Satisfy ();
 
   /**
+   * Remove a packet from all stats
+   */
+  void
+  RemoveFromStats ();
+
+  /**
    * Increment counter to both incoming and outgoing lists, for all faces
    */
   void
diff --git a/utils/stats/load-stats.cc b/utils/stats/load-stats.cc
index d785845..4bc1e5b 100644
--- a/utils/stats/load-stats.cc
+++ b/utils/stats/load-stats.cc
@@ -66,6 +66,13 @@
 }
 
 LoadStats &
+LoadStats::operator -- (int)
+{
+  counter_ --;
+  return *this;
+}
+
+LoadStats &
 LoadStats::operator += (uint32_t amount)
 {
   counter_ += amount;
diff --git a/utils/stats/load-stats.h b/utils/stats/load-stats.h
index 3e71753..d07c548 100644
--- a/utils/stats/load-stats.h
+++ b/utils/stats/load-stats.h
@@ -45,6 +45,9 @@
 
   LoadStats &
   operator ++ (int);
+
+  LoadStats &
+  operator -- (int);
   
   // uint32_t
   // GetCounter () const;
diff --git a/utils/stats/stats-tree.cc b/utils/stats/stats-tree.cc
index f84d902..f27281a 100644
--- a/utils/stats/stats-tree.cc
+++ b/utils/stats/stats-tree.cc
@@ -79,6 +79,14 @@
 }
 
 void
+StatsTree::RemoveFromStats (const NameComponents &key)
+{
+  std::pair<tree_type::iterator, bool> item = m_tree.insert (key, LoadStatsNode ());
+
+  item.first->payload ().RemoveFromStats ();
+}
+
+void
 StatsTree::Timeout (const NameComponents &key)
 {
   std::pair<tree_type::iterator, bool> item = m_tree.insert (key, LoadStatsNode ());
diff --git a/utils/stats/stats-tree.h b/utils/stats/stats-tree.h
index 955f798..bcab66d 100644
--- a/utils/stats/stats-tree.h
+++ b/utils/stats/stats-tree.h
@@ -54,6 +54,9 @@
   Satisfy (const NameComponents &key);
 
   void
+  RemoveFromStats (const NameComponents &key);
+
+  void
   Timeout (const NameComponents &key);
 
   void
