diff --git a/topologies/replset.js b/topologies/replset.js
index <HASH>..<HASH> 100644
--- a/topologies/replset.js
+++ b/topologies/replset.js
@@ -435,10 +435,13 @@ var pingServer = function(self, server, cb) {
 
 // Each server is monitored in parallel in their own timeout loop
 var monitorServer = function(host, self, options) {
+  // If this is not the initial scan  
   // Is this server already being monitoried, then skip monitoring
-  for(var i = 0; i < self.intervalIds.length; i++) {
-    if(self.intervalIds[i].__host === host) {
-      return;
+  if(!options.haInterval) {
+    for(var i = 0; i < self.intervalIds.length; i++) {
+      if(self.intervalIds[i].__host === host) {
+        return;
+      }
     }
   }
 
diff --git a/topologies/replset_state.js b/topologies/replset_state.js
index <HASH>..<HASH> 100644
--- a/topologies/replset_state.js
+++ b/topologies/replset_state.js
@@ -503,8 +503,6 @@ ReplSetState.prototype.update = function(server) {
         self.emit('left', 'primary', server);
     }
 
-    // Add the secondary to the set
-
     // Emit secondary joined replicaset
     self.emit('joined', 'secondary', server);
     emitTopologyDescriptionChanged(self);
NODE-<I> do not filter out timeout based serve monitoring during initial connection sweep