diff --git a/dlls/http.sys/http.c b/dlls/http.sys/http.c
index e16805ccbdb445c7233223688639fc2b90a83914..680ef30730c46eb1fe77cbf412417b047eff1094 100644
--- a/dlls/http.sys/http.c
+++ b/dlls/http.sys/http.c
@@ -715,7 +715,7 @@ static NTSTATUS http_add_url(struct request_queue *queue, IRP *irp)
     struct listening_socket *listening_sock;
     char *url, *endptr;
     size_t queue_url_len, new_url_len;
-    ULONG true = 1;
+    ULONG true = 1, value;
     SOCKET s = INVALID_SOCKET;
 
     TRACE("host %s, context %s.\n", debugstr_a(params->url), wine_dbgstr_longlong(params->context));
@@ -781,6 +781,8 @@ static NTSTATUS http_add_url(struct request_queue *queue, IRP *irp)
 
         addr.sin_family = AF_INET;
         addr.sin_addr.S_un.S_addr = INADDR_ANY;
+        value = 1;
+        setsockopt(s, SOL_SOCKET, SO_EXCLUSIVEADDRUSE, (char *)&value, sizeof(value));
         if (bind(s, (struct sockaddr *)&addr, sizeof(addr)) == -1)
         {
             LeaveCriticalSection(&http_cs);
diff --git a/dlls/httpapi/tests/httpapi.c b/dlls/httpapi/tests/httpapi.c
index ec1be5bc82a0dfb43f9fdc7a6d27e9880aa221ac..1d00aa22c504a3c32d4ee098f6a7256d29e8c11a 100644
--- a/dlls/httpapi/tests/httpapi.c
+++ b/dlls/httpapi/tests/httpapi.c
@@ -1397,7 +1397,7 @@ static void test_v2_bound_port(void)
     ok(!ret, "Failed to bind to port\n");
     swprintf(url, ARRAY_SIZE(url), L"http://localhost:%u/", port);
     ret = pHttpAddUrlToUrlGroup(group, url, 0xdeadbeef, 0);
-    todo_wine ok(ret == ERROR_SHARING_VIOLATION, "Unexpected failure adding %s, error %u.\n", debugstr_w(url), ret);
+    ok(ret == ERROR_SHARING_VIOLATION, "Unexpected failure adding %s, error %u.\n", debugstr_w(url), ret);
     shutdown(s2, SD_BOTH);
     closesocket(s2);
 
@@ -1407,8 +1407,8 @@ static void test_v2_bound_port(void)
 
     s = socket(AF_INET, SOCK_STREAM, 0);
     ret = connect(s, (struct sockaddr *)&sockaddr, sizeof(sockaddr));
-    todo_wine ok(ret, "Connecting to socket succeeded, %lu.\n", GetLastError());
-    todo_wine ok(GetLastError() == WSAECONNREFUSED, "Unexpected error connecting to socket, %lu.\n", GetLastError());
+    ok(ret, "Connecting to socket succeeded, %lu.\n", GetLastError());
+    ok(GetLastError() == WSAECONNREFUSED, "Unexpected error connecting to socket, %lu.\n", GetLastError());
 
     closesocket(s);
     ret = pHttpCloseRequestQueue(dummy_queue);