diff --git a/src/fetch-manager.cc b/src/fetch-manager.cc
index d152c30..1949518 100644
--- a/src/fetch-manager.cc
+++ b/src/fetch-manager.cc
@@ -23,6 +23,7 @@
 #include <boost/make_shared.hpp>
 #include <boost/ref.hpp>
 #include <boost/throw_exception.hpp>
+#include <boost/lexical_cast.hpp>
 
 #include "simple-interval-generator.h"
 #include "logging.h"
@@ -157,6 +158,12 @@
           continue;
         }
 
+      if (item->IsTimedWait ())
+        {
+          _LOG_DEBUG ("Item is in timed-wait");
+          continue;
+        }
+
       if (currentTime < item->GetNextScheduledRetry ())
         {
           if (item->GetNextScheduledRetry () < nextSheduleCheck)
@@ -223,8 +230,6 @@
   {
     unique_lock<mutex> lock (m_parellelFetchMutex);
     m_currentParallelFetches --;
-    _LOG_TRACE ("+++++ removing fetcher: " << fetcher.GetName ());
-    m_fetchList.erase_and_dispose (FetchList::s_iterator_to (fetcher), fetcher_disposer ());
 
     if (m_taskDb)
       {
@@ -232,5 +237,16 @@
       }
   }
 
+  // like TCP timed-wait
+  m_scheduler->scheduleOneTimeTask(m_scheduler, 10, boost::bind(&FetchManager::TimedWait, this, ref(fetcher)), boost::lexical_cast<string>(baseName));
+
   m_scheduler->rescheduleTaskAt (m_scheduleFetchesTask, 0);
 }
+
+void
+FetchManager::TimedWait (Fetcher &fetcher)
+{
+    unique_lock<mutex> lock (m_parellelFetchMutex);
+    _LOG_TRACE ("+++++ removing fetcher: " << fetcher.GetName ());
+    m_fetchList.erase_and_dispose (FetchList::s_iterator_to (fetcher), fetcher_disposer ());
+}
diff --git a/src/fetch-manager.h b/src/fetch-manager.h
index 31cb063..25ccac0 100644
--- a/src/fetch-manager.h
+++ b/src/fetch-manager.h
@@ -85,6 +85,9 @@
   void
   ScheduleFetches ();
 
+  void
+  TimedWait (Fetcher &fetcher);
+
 private:
   Ccnx::CcnxWrapperPtr m_ccnx;
   Mapping m_mapping;
diff --git a/src/fetcher.cc b/src/fetcher.cc
index 3334040..be9064a 100644
--- a/src/fetcher.cc
+++ b/src/fetcher.cc
@@ -51,6 +51,7 @@
   , m_finishCallback (finishCallback)
 
   , m_active (false)
+  , m_timedwait (false)
   , m_name (name)
   , m_deviceName (deviceName)
   , m_forwardingHint (forwardingHint)
@@ -201,6 +202,7 @@
       // using executor, so we won't be deleted if there is scheduled FillPipeline call
       if (!m_onFetchComplete.empty ())
         {
+          m_timedwait = true;
           m_executor->execute (bind (m_onFetchComplete, ref(*this), m_deviceName, m_name));
         }
     }
diff --git a/src/fetcher.h b/src/fetcher.h
index 41a2301..0a0fe9d 100644
--- a/src/fetcher.h
+++ b/src/fetcher.h
@@ -53,6 +53,9 @@
   inline bool
   IsActive () const;
 
+  inline bool
+  IsTimedWait() const { return m_timedwait; }
+
   void
   RestartPipeline ();
 
@@ -109,6 +112,7 @@
   FinishCallback m_finishCallback;
 
   bool m_active;
+  bool m_timedwait;
 
   Ccnx::Name m_name;
   Ccnx::Name m_deviceName;
