Index: src/ch/UpdateChecker.cpp
===================================================================
diff -u -N -r387751793d274e49253e796ca7cec4f3d0cf07a9 -r8ef3d7626821ec49c5cad75fd8176e492884bc7b
--- src/ch/UpdateChecker.cpp	(.../UpdateChecker.cpp)	(revision 387751793d274e49253e796ca7cec4f3d0cf07a9)
+++ src/ch/UpdateChecker.cpp	(.../UpdateChecker.cpp)	(revision 8ef3d7626821ec49c5cad75fd8176e492884bc7b)
@@ -656,8 +656,11 @@
 	CAsyncHttpFile::EWaitResult eWaitResult = CAsyncHttpFile::ePending;
 	size_t stFileSize = 0;
 	byte_t* pbyBuffer = NULL;
-	icpf::circular_buffer circBuffer;
 
+	const size_t stReserveBuffer = 1024;
+	std::vector<unsigned char> vBuffer;
+	vBuffer.reserve(stReserveBuffer);
+
 	// open the connection and try to get to the file
 	HRESULT hResult = pUpdateChecker->m_httpFile.Open(strSite);
 	if(SUCCEEDED(hResult))
@@ -717,7 +720,7 @@
 				hResult = pUpdateChecker->m_httpFile.GetRetrievedDataSize(stFileSize);
 
 			if(SUCCEEDED(hResult) && stFileSize)
-				circBuffer.push_data(pbyBuffer, stFileSize);
+				vBuffer.insert(vBuffer.end(), pbyBuffer, pbyBuffer + stFileSize);
 
 			bIsClosed = pUpdateChecker->m_httpFile.IsClosed();
 		}
@@ -744,7 +747,7 @@
 	const uint_t uiBetaDownloadAddress = cfg.register_string(_t("Version/Download Address Beta"), strSite);
 	try
 	{
-		cfg.read_from_buffer((TCHAR*)circBuffer.get_buffer(), (circBuffer.get_datasize() + 1) / 2);
+		cfg.read_from_buffer((wchar_t*)&vBuffer[0], vBuffer.size() / sizeof(wchar_t));
 	}
 	catch(icpf::exception& e)
 	{