diff --git a/src/net.cpp b/src/net.cpp
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -2515,11 +2515,6 @@
     }
 
     vhListenSocket.push_back(ListenSocket(hListenSocket, permissions));
-
-    if (addrBind.IsRoutable() && fDiscover && (permissions & PF_NOBAN) == 0) {
-        AddLocal(addrBind, LOCAL_BIND);
-    }
-
     return true;
 }
 
@@ -2614,6 +2609,11 @@
         }
         return false;
     }
+
+    if (addr.IsRoutable() && fDiscover && (permissions & PF_NOBAN) == 0) {
+        AddLocal(addr, LOCAL_BIND);
+    }
+
     return true;
 }