diff --git a/model/fib/ndn-fib-impl.cc b/model/fib/ndn-fib-impl.cc
index 1e0f04f..218502b 100644
--- a/model/fib/ndn-fib-impl.cc
+++ b/model/fib/ndn-fib-impl.cc
@@ -83,6 +83,17 @@
     return item->payload ();
 }
 
+Ptr<fib::Entry>
+FibImpl::Find (const Name &prefix)
+{
+  super::iterator item = super::find_exact (prefix);
+
+  if (item == super::end ())
+    return 0;
+  else
+    return item->payload ();
+}
+
 
 Ptr<Entry>
 FibImpl::Add (const Name &prefix, Ptr<Face> face, int32_t metric)
diff --git a/model/fib/ndn-fib-impl.h b/model/fib/ndn-fib-impl.h
index 0755b35..57d7d50 100644
--- a/model/fib/ndn-fib-impl.h
+++ b/model/fib/ndn-fib-impl.h
@@ -87,6 +87,9 @@
 
   virtual Ptr<Entry>
   LongestPrefixMatch (const Interest &interest);
+
+  virtual Ptr<fib::Entry>
+  Find (const Name &prefix);
   
   virtual Ptr<Entry>
   Add (const Name &prefix, Ptr<Face> face, int32_t metric);
diff --git a/model/fib/ndn-fib.h b/model/fib/ndn-fib.h
index 6e21214..490cdfd 100644
--- a/model/fib/ndn-fib.h
+++ b/model/fib/ndn-fib.h
@@ -65,6 +65,15 @@
    */
   virtual Ptr<fib::Entry>
   LongestPrefixMatch (const Interest &interest) = 0;
+
+  /**
+   * @brief Get FIB entry for the prefix (exact match)
+   *
+   * @param prefix Name for FIB entry
+   * @returns If entry is found, a valid iterator (Ptr<fib::Entry>) will be returned. Otherwise End () (==0)
+   */
+  virtual Ptr<fib::Entry>
+  Find (const Name &prefix) = 0;
   
   /**
    * \brief Add or update FIB entry
diff --git a/model/pit/ndn-pit-impl.cc b/model/pit/ndn-pit-impl.cc
index 3a61c09..777ab39 100644
--- a/model/pit/ndn-pit-impl.cc
+++ b/model/pit/ndn-pit-impl.cc
@@ -213,6 +213,19 @@
 
 template<class Policy>
 Ptr<Entry>
+PitImpl<Policy>::Find (const Name &prefix)
+{
+  typename super::iterator item = super::find_exact (prefix);
+
+  if (item == super::end ())
+    return 0;
+  else
+    return item->payload ();
+}
+
+
+template<class Policy>
+Ptr<Entry>
 PitImpl<Policy>::Create (Ptr<const Interest> header)
 {
   NS_LOG_DEBUG (header->GetName ());
diff --git a/model/pit/ndn-pit-impl.h b/model/pit/ndn-pit-impl.h
index f3e49f9..66ff69b 100644
--- a/model/pit/ndn-pit-impl.h
+++ b/model/pit/ndn-pit-impl.h
@@ -81,6 +81,9 @@
   Lookup (const Interest &header);
 
   virtual Ptr<Entry>
+  Find (const Name &prefix);
+  
+  virtual Ptr<Entry>
   Create (Ptr<const Interest> header);
 
   virtual void
diff --git a/model/pit/ndn-pit.h b/model/pit/ndn-pit.h
index 186f8c4..dd237c1 100644
--- a/model/pit/ndn-pit.h
+++ b/model/pit/ndn-pit.h
@@ -89,6 +89,15 @@
   Lookup (const Interest &header) = 0;
 
   /**
+   * @brief Get PIT entry for the prefix (exact match)
+   *
+   * @param prefix Name for PIT entry
+   * @returns If entry is found, a valid iterator (Ptr<pit::Entry>) will be returned. Otherwise End () (==0)
+   */
+  virtual Ptr<pit::Entry>
+  Find (const Name &prefix) = 0;
+
+  /**
    * @brief Creates a PIT entry for the given interest
    * @param header parsed interest header
    * @returns iterator to Pit entry. If record could not be created (e.g., limit reached),
