diff --git a/model/forwarding-strategy/fw-stats.cc b/model/forwarding-strategy/fw-stats.cc
index cd3b744..38f03c8 100644
--- a/model/forwarding-strategy/fw-stats.cc
+++ b/model/forwarding-strategy/fw-stats.cc
@@ -75,7 +75,7 @@
 {
   super::OnInterest (face, header, packet);
   
-  m_stats.Rx (header->GetName (), face, packet->GetSize ());
+  m_stats.Rx (header->GetName ().cut (1), face, packet->GetSize ());
 
   ScheduleRefreshingIfNecessary ();
 }
@@ -88,7 +88,7 @@
 {
   super::OnData (face, header, payload, packet);
   
-  m_stats.Rx (header->GetName (), face, packet->GetSize ());
+  m_stats.Rx (header->GetName ().cut (1), face, packet->GetSize ());
 
   ScheduleRefreshingIfNecessary ();
 }
@@ -102,9 +102,9 @@
   super::FailedToCreatePitEntry (incomingFace, header, packet);
 
   // Kind of cheating... But at least this way we will have some statistics
-  m_stats.NewPitEntry (header->GetName ());
-  m_stats.Incoming (header->GetName (), incomingFace);
-  m_stats.Timeout (header->GetName ());
+  m_stats.NewPitEntry (header->GetName ().cut (1));
+  m_stats.Incoming (header->GetName ().cut (1), incomingFace);
+  m_stats.Timeout (header->GetName ().cut (1));
 
   ScheduleRefreshingIfNecessary ();
 }
@@ -117,8 +117,8 @@
 {
   super::DidCreatePitEntry (incomingFace, header, packet, pitEntry);
   
-  m_stats.NewPitEntry (header->GetName ());
-  m_stats.Incoming (header->GetName (), incomingFace);
+  m_stats.NewPitEntry (header->GetName ().cut (1));
+  m_stats.Incoming (header->GetName ().cut (1), incomingFace);
   
   ScheduleRefreshingIfNecessary ();
 }
@@ -129,7 +129,7 @@
 {
   super::WillSatisfyPendingInterest (incomingFace, pitEntry);
   
-  m_stats.Satisfy (pitEntry->GetPrefix ());
+  m_stats.Satisfy (pitEntry->GetPrefix ().cut (1));
   
   ScheduleRefreshingIfNecessary ();
 }
@@ -142,8 +142,8 @@
 {
   super::DidSendOutInterest (outgoingFace, header, packet, pitEntry);
 
-  m_stats.Outgoing (header->GetName (), outgoingFace);
-  m_stats.Tx (header->GetName (), outgoingFace, packet->GetSize ());
+  m_stats.Outgoing (header->GetName ().cut (1), outgoingFace);
+  m_stats.Tx (header->GetName ().cut (1), outgoingFace, packet->GetSize ());
   
   ScheduleRefreshingIfNecessary ();
 }
@@ -156,7 +156,7 @@
 {
   super::DidSendOutData (face, header, payload, packet);
 
-  m_stats.Tx (header->GetName (), face, packet->GetSize ());
+  m_stats.Tx (header->GetName ().cut (1), face, packet->GetSize ());
   
   ScheduleRefreshingIfNecessary ();
 }
@@ -167,7 +167,7 @@
 {
   super::WillErasePendingInterest (pitEntry);
 
-  m_stats.Timeout (pitEntry->GetPrefix ());
+  m_stats.Timeout (pitEntry->GetPrefix ().cut (1));
   
   ScheduleRefreshingIfNecessary ();
 }
