Index: src/libchcore/TOverlappedDataBufferQueue.cpp
===================================================================
diff -u -re96806b7f8ff7ca7e9f4afbea603e6351a3dc3e3 -re8f31b0f922b402878356e130c866c4f3682a7f5
--- src/libchcore/TOverlappedDataBufferQueue.cpp	(.../TOverlappedDataBufferQueue.cpp)	(revision e96806b7f8ff7ca7e9f4afbea603e6351a3dc3e3)
+++ src/libchcore/TOverlappedDataBufferQueue.cpp	(.../TOverlappedDataBufferQueue.cpp)	(revision e8f31b0f922b402878356e130c866c4f3682a7f5)
@@ -83,7 +83,7 @@
 	void TOverlappedDataBufferQueue::AddEmptyBuffer(TOverlappedDataBuffer* pBuffer)
 	{
 		if (!pBuffer)
-			THROW_CORE_EXCEPTION(eErr_InvalidPointer);
+			throw TCoreException(eErr_InvalidPointer, L"pBuffer", LOCATION);
 
 		m_listEmptyBuffers.push_back(pBuffer);
 		UpdateReadPossibleEvent();
@@ -126,11 +126,11 @@
 	void TOverlappedDataBufferQueue::AddFullBuffer(TOverlappedDataBuffer* pBuffer)
 	{
 		if (!pBuffer)
-			THROW_CORE_EXCEPTION(eErr_InvalidPointer);
+			throw TCoreException(eErr_InvalidPointer, L"pBuffer", LOCATION);
 
 		std::pair<FullBuffersSet::iterator, bool> pairInsertInfo = m_setFullBuffers.insert(pBuffer);
 		if (!pairInsertInfo.second)
-			THROW_CORE_EXCEPTION(eErr_InvalidOverlappedPosition);
+			throw TCoreException(eErr_InvalidOverlappedPosition, L"Tried to re-insert same buffer into queue", LOCATION);
 
 		if (pBuffer->IsLastPart())
 			m_bDataSourceFinished = true;
@@ -177,11 +177,11 @@
 	void TOverlappedDataBufferQueue::AddFinishedBuffer(TOverlappedDataBuffer* pBuffer)
 	{
 		if (!pBuffer)
-			THROW_CORE_EXCEPTION(eErr_InvalidPointer);
+			throw TCoreException(eErr_InvalidPointer, L"pBuffer", LOCATION);
 
 		std::pair<FullBuffersSet::iterator, bool> pairInsertInfo = m_setFinishedBuffers.insert(pBuffer);
 		if (!pairInsertInfo.second)
-			THROW_CORE_EXCEPTION(eErr_InvalidOverlappedPosition);
+			throw TCoreException(eErr_InvalidOverlappedPosition, L"Tried to re-insert same buffer into queue", LOCATION);
 
 		UpdateWriteFinishedEvent();
 		UpdateAllBuffersAccountedFor();
@@ -214,9 +214,9 @@
 	{
 		// sanity check - if any of the buffers are still in use, we can't change the sizes
 		if (m_listAllBuffers.size() != m_listEmptyBuffers.size())
-			THROW_CORE_EXCEPTION(eErr_InternalProblem);
+			throw TCoreException(eErr_InternalProblem, L"Some buffers are still in use", LOCATION);
 		if (stBufferSize == 0)
-			THROW_CORE_EXCEPTION(eErr_InvalidArgument);
+			throw TCoreException(eErr_InvalidArgument, L"stBufferSize", LOCATION);
 
 		if (stBufferSize != GetSingleBufferSize())
 		{
@@ -276,7 +276,7 @@
 		CleanupBuffers();
 
 		if (m_listAllBuffers.size() != m_listEmptyBuffers.size())
-			THROW_CORE_EXCEPTION(eErr_InternalProblem);
+			throw TCoreException(eErr_InternalProblem, L"Some buffers are still in use", LOCATION);
 
 		m_bDataSourceFinished = false;
 		m_bDataWritingFinished = false;