Index: src/libchcore/TOverlappedDataBufferQueue.cpp =================================================================== diff -u -N -r861eb97e5f43584f9537b4aff0558f6689bd0e38 -r7e407d35b44ec7482a112ef382e4619cf5d96172 --- src/libchcore/TOverlappedDataBufferQueue.cpp (.../TOverlappedDataBufferQueue.cpp) (revision 861eb97e5f43584f9537b4aff0558f6689bd0e38) +++ src/libchcore/TOverlappedDataBufferQueue.cpp (.../TOverlappedDataBufferQueue.cpp) (revision 7e407d35b44ec7482a112ef382e4619cf5d96172) @@ -108,11 +108,14 @@ m_setFullBuffers.erase(m_setFullBuffers.begin()); - // if this is the last part - mark that writing is finished, so that no other buffer will be written - if (pBuffer->IsLastPart()) - m_bDataWritingFinished = true; + if(pBuffer->GetErrorCode() == ERROR_SUCCESS) + { + // if this is the last part - mark that writing is finished, so that no other buffer will be written + if(pBuffer->IsLastPart()) + m_bDataWritingFinished = true; - ++m_ullNextWriteBufferOrder; + ++m_ullNextWriteBufferOrder; + } UpdateWritePossibleEvent(); m_eventAllBuffersAccountedFor.ResetEvent();