diff --git a/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod b/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod
index e2857f24b70e56fbfca1e7ed987deb19f1346783..71b9fd409b9b9044f1936ef40cdd376d9e84e550 100644
--- a/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod
+++ b/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod
@@ -388,14 +388,15 @@ protected void https_proxy_connect_ok(Protocols.HTTP.Query con,
 				      mapping(string:string) request_headers,
 				      string data)
 {
+  con->set_callbacks(@orig_cb_info);
   if (con->status >= 300) {
     // Proxy did not like us or failed to connect to the remote.
-    https_proxy_connect_fail(con, orig_cb_info, url, method,
-			     query_variables, request_headers,
-			     data);
+    // Return the failure message.
+    if (con->request_ok) {
+      con->request_ok(con, @con->extra_args);
+    }
     return;
   }
-  con->set_callbacks(@orig_cb_info);
 
   con->headers["connect"] = "keep-alive";
   con->headers["content-length"] = "0";