diff --git a/lib/server.js b/lib/server.js
index <HASH>..<HASH> 100644
--- a/lib/server.js
+++ b/lib/server.js
@@ -45,6 +45,7 @@ var Server = exports.Server = function (root, config, components) {
       , body_parser: true
       , cookie_parser: true
       , method_override: true
+      , cleanup_response: false
     };
     this.useragent_redirects = [];
     this.error_handler = null;
@@ -89,6 +90,24 @@ Server.prototype.create = function () {
         app = express();
     }
 
+    //Cleanup cyclic references and certain objects that may cause leaks
+    if (this.components.cleanup_response) {
+        var cleanupResponse = function() {
+            if (this.req) {
+                delete this.req.next;
+                delete this.req.res;
+                delete this.req.query;
+                delete this.req.trailers;
+            }
+            delete this.next;
+            delete this.req;
+        };
+        app.use(function (request, response, next) {
+            response.on('end', cleanupResponse);
+            response.on('close', cleanupResponse);
+        });
+    }
+
     //Send 400 when a malformed url is encountered
     app.use(function (request, response, next) {
         try {
Add an experimental middleware to cleanup the response object