diff --git a/lib/socket-mgr.js b/lib/socket-mgr.js
index <HASH>..<HASH> 100644
--- a/lib/socket-mgr.js
+++ b/lib/socket-mgr.js
@@ -101,6 +101,13 @@ function initStatus(ctx, enable) {
   }
 }
 
+function removePending(reqId) {
+  var index = pendingReqList.indexOf(reqId);
+  if (index !== -1) {
+    pendingReqList.splice(index, 1);
+  }
+}
+
 exports.handleConnect = function(req, res) {
   var hasEvent = util.listenerCount(proxy, 'tunnelRequest');
   var isConn = req.inspectFrames;
@@ -115,6 +122,7 @@ exports.handleConnect = function(req, res) {
     var emitData, handleInspect;
 
     if (customParser || !isConn) {
+      removePending(reqId);
       handleInspect = function(chunk, encoding, cb) {
         hasEvent && proxy.emit('tunnelRequest', url);
         cb(null, chunk);
@@ -334,6 +342,7 @@ exports.handleWebsocket = function(req, res) {
     req.emit('error', err);
   });
   if (customParser) {
+    removePending(reqId);
     handleInspect = function(chunk, encoding, cb) {
       hasEvent && proxy.emit('wsRequest', url);
       cb(null, chunk);
fix: delayed response auto-close in custom parser