diff --git "a/dll/win32/winhttp/request.c" "b/dll/win32/winhttp/request.c" index da28f7b1826..67ed1994d6a 100644 --- "a/dll/win32/winhttp/request.c" +++ "b/dll/win32/winhttp/request.c" @@ -2042,6 +2042,14 @@ static BOOL read_data( struct request *request, void *buffer, DWORD size, DWORD done: TRACE( "retrieved %u bytes (%u/%u)\n", bytes_read, request->content_read, request->content_length ); + + /* Check if we need time to let the receive buffer catch up */ + if (request->content_read == request->content_length && + (request->content_read > 50 * 1024)) + { + Sleep(request->content_length / 20); + } + if (async) { if (ret) send_callback( &request->hdr, WINHTTP_CALLBACK_STATUS_READ_COMPLETE, buffer, bytes_read );