Index: src/libchcore/TOverlappedDataBuffer.cpp
===================================================================
diff -u -rb89aea376d35ce4b0d6506f7d04dba73830d9268 -r3ccbdb8d3eac3427e6d3354854476e57fdc7ceb9
--- src/libchcore/TOverlappedDataBuffer.cpp	(.../TOverlappedDataBuffer.cpp)	(revision b89aea376d35ce4b0d6506f7d04dba73830d9268)
+++ src/libchcore/TOverlappedDataBuffer.cpp	(.../TOverlappedDataBuffer.cpp)	(revision 3ccbdb8d3eac3427e6d3354854476e57fdc7ceb9)
@@ -27,6 +27,16 @@
 
 namespace chcore
 {
+	bool CompareBufferPositions::operator()(const TOverlappedDataBuffer* pBufferA, const TOverlappedDataBuffer* pBufferB) const
+	{
+		if(!pBufferA)
+			throw TCoreException(eErr_InvalidArgument, L"pBufferA", LOCATION);
+		if(!pBufferB)
+			throw TCoreException(eErr_InvalidArgument, L"pBufferB", LOCATION);
+
+		return pBufferA->GetFilePosition() < pBufferB->GetFilePosition();
+	}
+
 	TOverlappedDataBuffer::TOverlappedDataBuffer(size_t stBufferSize, void* pParam) :
 		m_pParam(pParam)
 	{