diff --git a/lib/core/topologies/mongos.js b/lib/core/topologies/mongos.js
index <HASH>..<HASH> 100644
--- a/lib/core/topologies/mongos.js
+++ b/lib/core/topologies/mongos.js
@@ -366,7 +366,8 @@ function handleInitialConnectEvent(self, event) {
           self.s.logger.warn(f(message, _this.name));
         }
 
-        // This is not a mongos proxy, remove it completely
+        // This is not a mongos proxy, destroy and remove it completely
+        _this.destroy(true);
         removeProxyFrom(self.connectingProxies, _this);
         // Emit the left event
         self.emit('left', 'server', _this);
@@ -445,10 +446,9 @@ function connectProxies(self, servers) {
       server.connect(self.s.connectOptions);
     }, timeoutInterval);
   }
+
   // Start all the servers
-  while (servers.length > 0) {
-    connect(servers.shift(), timeoutInterval++);
-  }
+  servers.forEach(server => connect(server, timeoutInterval++));
 }
 
 function pickProxy(self, session) {
fix(mongos): disconnect proxies which are not mongos instances

NODE-<I>