diff --git a/src/fetcher.cc b/src/fetcher.cc
index 13a52b3..98b8ceb 100644
--- a/src/fetcher.cc
+++ b/src/fetcher.cc
@@ -95,6 +95,8 @@
 {
   for (; m_minSendSeqNo < m_maxSeqNo && m_activePipeline < m_pipeline; m_minSendSeqNo++)
     {
+      unique_lock<mutex> lock (m_seqNoMutex);
+
       if (m_outOfOrderRecvSeqNo.find (m_minSendSeqNo+1) != m_outOfOrderRecvSeqNo.end ())
         continue;
 
@@ -157,6 +159,8 @@
   m_lastPositiveActivity = date_time::second_clock<boost::posix_time::ptime>::universal_time();
 
   ////////////////////////////////////////////////////////////////////////////
+  unique_lock<mutex> lock (m_seqNoMutex);
+
   m_outOfOrderRecvSeqNo.insert (seqno);
   m_inActivePipeline.erase (seqno);
   _LOG_DEBUG ("Total segments received: " << m_outOfOrderRecvSeqNo.size ());
@@ -222,12 +226,25 @@
   if (m_lastPositiveActivity <
       (date_time::second_clock<boost::posix_time::ptime>::universal_time() - m_maximumNoActivityPeriod))
     {
-      m_inActivePipeline.erase (seqno);
-      m_activePipeline --;
-      if (m_activePipeline == 0)
+      bool done = false;
+      {
+        unique_lock<mutex> lock (m_seqNoMutex);
+        m_inActivePipeline.erase (seqno);
+        m_activePipeline --;
+
+        if (m_activePipeline == 0)
+          {
+          done = true;
+          }
+      }
+
+      if (done)
         {
-          _LOG_DEBUG ("Telling that fetch failed");
-          _LOG_DEBUG ("Active pipeline size should be zero: " << m_inActivePipeline.size ());
+          {
+            unique_lock<mutex> lock (m_seqNoMutex);
+            _LOG_DEBUG ("Telling that fetch failed");
+            _LOG_DEBUG ("Active pipeline size should be zero: " << m_inActivePipeline.size ());
+          }
 
           m_active = false;
           m_onFetchFailed (ref (*this));
