diff --git a/src/common/zeroconf/client_zeroconf.py b/src/common/zeroconf/client_zeroconf.py
index c5049c6fc968c81da05d4334f47ea543400e4a2e..b91b98c216131630d33238e9abd2d949af1a3322 100644
--- a/src/common/zeroconf/client_zeroconf.py
+++ b/src/common/zeroconf/client_zeroconf.py
@@ -803,11 +803,19 @@ class ClientZeroconf:
         def on_ok(_waitid):
 #            if timeout:
 #                self._owner.set_timeout(timeout)
-            to = stanza.getTo()
+            to = unicode(stanza.getTo())
+            to = gajim.get_jid_without_resource(to)
+
+            try:
+                item = self.roster[to]
+            except KeyError:
+                # Contact offline
+                item = None
+
             conn = None
             if to in self.recipient_to_hash:
                 conn = self.connections[self.recipient_to_hash[to]]
-            elif item['address'] in self.ip_to_hash:
+            elif item and item['address'] in self.ip_to_hash:
                 hash_ = self.ip_to_hash[item['address']]
                 if self.hash_to_port[hash_] == item['port']:
                     conn = self.connections[hash_]