diff --git a/CHANGES b/CHANGES
index 0b8a8412278a6d33bbe36af8e34723b875b8b7bb..0e638ca5a772a48533fb381cfd4c545283c802d9 100644
--- a/CHANGES
+++ b/CHANGES
@@ -101,6 +101,12 @@ o Process.run
   - Don't error if stdin modifier is supplied as the empty string.
     [LysLysKOM 23099651]
 
+o Protoocls.HTTP
+
+  - Protocols.HTTP.do_async_proxied_method() did not pass on request
+    headers unless credentials were given to the proxy or the protocol
+    to be used was HTTPS.
+
 o Protocols.HTTP.Session
 
   - Fix race-condition when multiple threads call give_me_connection()
diff --git a/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod b/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod
index 920dee12d3c38fa6c66f4869ff95e8f134f484bd..1611735e82877128182af0f01cc32477c60ab936 100644
--- a/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod
+++ b/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod
@@ -568,6 +568,7 @@ void do_async_proxied_method(string|Standards.URI proxy,
     url->port = proxy->port;
     query_variables = url->query = 0;
     url->path = web_url;
+    if (!proxy_headers) proxy_headers = request_headers;
 #if constant(SSL.File)
   } else if(url->scheme == "https") {
 #ifdef HTTP_QUERY_DEBUG