diff --git a/model/ccnx-fib.cc b/model/ccnx-fib.cc
index 1c86b28..4159f73 100644
--- a/model/ccnx-fib.cc
+++ b/model/ccnx-fib.cc
@@ -303,25 +303,6 @@
                       this, ll::_1, face));
 }
 
-/**
- * \brief Get number of FIB entry (for python bindings)
- */
-uint32_t 
-CcnxFib::GetCcnxFibEntryCount () const
-{
-  return m_fib.size ();
-}
-
-/**
- * \brief Get FIB entry by index (for python bindings)
- */
-const CcnxFibEntry &
-CcnxFib::GetCcnxFibEntry (uint32_t index)
-{
-  NS_ASSERT (0 <= index && index < m_fib.size ());
-  return m_fib.get <i_nth> () [index];
-}
-
 
 std::ostream& operator<< (std::ostream& os, const CcnxFib &fib)
 {
diff --git a/model/ccnx-fib.h b/model/ccnx-fib.h
index bbbc44f..1baaf6f 100644
--- a/model/ccnx-fib.h
+++ b/model/ccnx-fib.h
@@ -254,11 +254,7 @@
         boost::multi_index::const_mem_fun<CcnxFibEntry,
                                           const CcnxNameComponents&,
                                           &CcnxFibEntry::GetPrefix>,
-        CcnxPrefixHash>,
-
-      boost::multi_index::random_access<
-        boost::multi_index::tag<__ccnx_private::i_nth>
-        >
+        CcnxPrefixHash>
       >
     > type;
   /// @endcond
@@ -364,18 +360,6 @@
   void
   RemoveFromAll (Ptr<CcnxFace> face);
 
-  /**
-   * \brief Get number of FIB entry (for python bindings)
-   */
-  uint32_t 
-  GetCcnxFibEntryCount () const;
-
-  /**
-   * \brief Get FIB entry by index (for python bindings)
-   */
-  const CcnxFibEntry &
-  GetCcnxFibEntry (uint32_t index);
-
 public:
   CcnxFibEntryContainer::type m_fib; ///< @brief Internal container
 
