diff --git a/lib/http_forward.js b/lib/http_forward.js
index 46b976815aa19b598db0e36cb61df23ef20d7835..16b757703a8363567e85205f93d9a39fdbc5e857 100644
--- a/lib/http_forward.js
+++ b/lib/http_forward.js
@@ -6,6 +6,14 @@ logger = require('./logging.js').logger,
 querystring = require('querystring');
 
 module.exports = function(dest, req, res, cb) {
+  function cleanupReq() {
+    if (preq) {
+      preq.removeAllListeners();
+      preq.destroy();
+      preq = undefined;
+    }
+  }
+
   var u = url.parse(dest.toString());
 
   var m = u.protocol === 'http:' ? http : https;
@@ -32,9 +40,14 @@ module.exports = function(dest, req, res, cb) {
       res.write(chunk);
     }).on('end', function() {
       res.end();
+      pres.removeAllListeners();
+      pres.destroy();
+      pres = undefined;
+      cleanupReq();
       cb();
     });
   }).on('error', function(e) {
+    cleanupReq();
     cb(e);
   });