Index: src/libchcore/TWriteBufferQueueWrapper.cpp
===================================================================
diff -u -N -ra1f5b3d99f2f175b102d81379698ea1f08e42cce -r10d42e85d810f6da082cb2ce4415dcb72903410e
--- src/libchcore/TWriteBufferQueueWrapper.cpp	(.../TWriteBufferQueueWrapper.cpp)	(revision a1f5b3d99f2f175b102d81379698ea1f08e42cce)
+++ src/libchcore/TWriteBufferQueueWrapper.cpp	(.../TWriteBufferQueueWrapper.cpp)	(revision 10d42e85d810f6da082cb2ce4415dcb72903410e)
@@ -32,7 +32,7 @@
 
 		UpdateHasBuffers();
 
-		m_emptyBuffersQueueConnector = m_spDataQueue->GetNotifier().connect(boost::bind(&TWriteBufferQueueWrapper::UpdateHasBuffers, this));
+		m_emptyBuffersQueueConnector = m_spDataQueue->GetNotifier().connect(boost::bind(&TWriteBufferQueueWrapper::UpdateHasBuffers, this, _1));
 	}
 
 	TWriteBufferQueueWrapper::~TWriteBufferQueueWrapper()
@@ -77,11 +77,6 @@
 			return m_spDataQueue->Pop();
 	}
 
-	bool TWriteBufferQueueWrapper::IsBufferReady() const
-	{
-		return !m_tRetryBuffers.empty() || m_spDataQueue->HasPoppableBuffer();
-	}
-
 	size_t TWriteBufferQueueWrapper::GetCount() const
 	{
 		return m_spDataQueue->GetCount();
@@ -92,8 +87,14 @@
 		return m_eventHasBuffers.Handle();
 	}
 
+	void TWriteBufferQueueWrapper::UpdateHasBuffers(bool bDataQueueHasPoppableBuffer)
+	{
+		bool bIsReady = bDataQueueHasPoppableBuffer || !m_tRetryBuffers.empty();
+		m_eventHasBuffers.SetEvent(bIsReady);
+	}
+
 	void TWriteBufferQueueWrapper::UpdateHasBuffers()
 	{
-		m_eventHasBuffers.SetEvent(IsBufferReady());
+		UpdateHasBuffers(m_spDataQueue->HasPoppableBuffer());
 	}
 }