Index: src/ch/AsyncHttpFile.cpp
===================================================================
diff -u -N -r44a2ec5f1eb0a435b56daef42ef5fe3b7a91da0d -r50007f112b77cba170e6c427fee5428bda2d9dc5
--- src/ch/AsyncHttpFile.cpp	(.../AsyncHttpFile.cpp)	(revision 44a2ec5f1eb0a435b56daef42ef5fe3b7a91da0d)
+++ src/ch/AsyncHttpFile.cpp	(.../AsyncHttpFile.cpp)	(revision 50007f112b77cba170e6c427fee5428bda2d9dc5)
@@ -205,7 +205,10 @@
 	m_internetBuffers.lpvBuffer = pBuffer;
 
 	m_dwExpectedState = INTERNET_STATUS_REQUEST_COMPLETE;
-	if(!::InternetReadFileEx(m_hOpenUrl, &m_internetBuffers, IRF_NO_WAIT, (DWORD_PTR)&m_tReadRequest))
+
+	// #WinXP #workaround - in bare WinXP SP3 (i.e. without additional updates), InternetReadFileExW returns
+	// error 120 (not implemented); it was implemented with some later update
+	if(!::InternetReadFileExA(m_hOpenUrl, &m_internetBuffers, IRF_NO_WAIT, (DWORD_PTR)&m_tReadRequest))
 	{
 		SetErrorCode(::GetLastError());
 		if(GetErrorCode() == ERROR_IO_PENDING)