diff --git a/model/ccnx-bestroute-strategy.cc b/model/ccnx-bestroute-strategy.cc
index 3295d31..f455d60 100644
--- a/model/ccnx-bestroute-strategy.cc
+++ b/model/ccnx-bestroute-strategy.cc
@@ -57,7 +57,7 @@
 }
     
 bool
-CcnxBestRouteStrategy::PropagateInterest (const CcnxPitEntry  &pitEntry, 
+CcnxBestRouteStrategy::PropagateInterest (Ptr<CcnxPitEntry> pitEntry, 
                                           const Ptr<CcnxFace> &incomingFace,
                                           Ptr<CcnxInterestHeader> &header,
                                           const Ptr<const Packet> &packet)
@@ -73,7 +73,7 @@
 
   int propagatedCount = 0;
 
-  BOOST_FOREACH (const CcnxFibFaceMetric &metricFace, pitEntry.m_fibEntry->m_faces.get<i_metric> ())
+  BOOST_FOREACH (const CcnxFibFaceMetric &metricFace, pitEntry->m_fibEntry->m_faces.get<i_metric> ())
     {
       if (metricFace.m_status == CcnxFibFaceMetric::NDN_FIB_RED) // all non-read faces are in front
         break;
@@ -81,16 +81,16 @@
       if (metricFace.m_face == incomingFace) 
         continue; // same face as incoming, don't forward
 
-      if (pitEntry.m_incoming.find (metricFace.m_face) != pitEntry.m_incoming.end ()) 
+      if (pitEntry->m_incoming.find (metricFace.m_face) != pitEntry->m_incoming.end ()) 
         continue; // don't forward to face that we received interest from
 
       CcnxPitEntryOutgoingFaceContainer::type::iterator outgoing =
-        pitEntry.m_outgoing.find (metricFace.m_face);
+        pitEntry->m_outgoing.find (metricFace.m_face);
       
-      if (outgoing != pitEntry.m_outgoing.end () &&
-          outgoing->m_retxCount >= pitEntry.m_maxRetxCount)
+      if (outgoing != pitEntry->m_outgoing.end () &&
+          outgoing->m_retxCount >= pitEntry->m_maxRetxCount)
         {
-          NS_LOG_ERROR (outgoing->m_retxCount << " >= " << pitEntry.m_maxRetxCount);
+          NS_LOG_ERROR (outgoing->m_retxCount << " >= " << pitEntry->m_maxRetxCount);
           continue; // already forwarded before during this retransmission cycle
         }
 
@@ -100,8 +100,7 @@
           continue;
         }
 
-      m_pit->modify (pitEntry,
-                     ll::bind(&CcnxPitEntry::AddOutgoing, ll::_1, metricFace.m_face));
+      pitEntry->AddOutgoing (metricFace.m_face);
 
       Ptr<Packet> packetToSend = packet->Copy ();
 
