Index: winhttp/session.c =================================================================== --- winhttp/session.c (revision 56745) +++ winhttp/session.c (working copy) @@ -91,6 +91,9 @@ heap_free( session->proxy_username ); heap_free( session->proxy_password ); heap_free( session ); +#ifdef __REACTOS__ + WSACleanup(); +#endif } static BOOL session_query_option( object_header_t *hdr, DWORD option, LPVOID buffer, LPDWORD buflen ) @@ -199,6 +202,11 @@ { session_t *session; HINTERNET handle = NULL; +#ifdef __REACTOS__ + WSADATA wsaData; + int error = WSAStartup(MAKEWORD(2, 2), &wsaData); + if (error) ERR("WSAStartup failed: %d\n", error); +#endif TRACE("%s, %u, %s, %s, 0x%08x\n", debugstr_w(agent), access, debugstr_w(proxy), debugstr_w(bypass), flags); Index: wininet/internet.c =================================================================== --- wininet/internet.c (revision 56760) +++ wininet/internet.c (working copy) @@ -747,6 +747,9 @@ heap_free(lpwai->proxyBypass); heap_free(lpwai->proxyUsername); heap_free(lpwai->proxyPassword); +#ifdef __REACTOS__ + WSACleanup(); +#endif } static DWORD APPINFO_QueryOption(object_header_t *hdr, DWORD option, void *buffer, DWORD *size, BOOL unicode) @@ -908,6 +911,11 @@ LPCWSTR lpszProxy, LPCWSTR lpszProxyBypass, DWORD dwFlags) { appinfo_t *lpwai = NULL; +#ifdef __REACTOS__ + WSADATA wsaData; + int error = WSAStartup(MAKEWORD(2, 2), &wsaData); + if (error) ERR("WSAStartup failed: %d\n", error); +#endif if (TRACE_ON(wininet)) { #define FE(x) { x, #x }