diff --git a/libi2pd/Transports.cpp b/libi2pd/Transports.cpp
index 7a2fb431..bfd1b190 100644
--- a/libi2pd/Transports.cpp
+++ b/libi2pd/Transports.cpp
@@ -539,7 +539,8 @@ namespace transport
 			}
 
 			LogPrint (eLogInfo, "Transports: No compatible addresses available");
-			i2p::data::netdb.SetUnreachable (ident, true); // we are here because all connection attempts failed
+			if (peer.router->IsReachableFrom (i2p::context.GetRouterInfo ()))
+				i2p::data::netdb.SetUnreachable (ident, true); // we are here because all connection attempts failed but router claimed them
 			peer.Done ();
 			std::unique_lock<std::mutex> l(m_PeersMutex);
 			m_Peers.erase (ident);