diff --git a/src/jamidht/contact_list.cpp b/src/jamidht/contact_list.cpp
index 6a0d250b1b2ca81d4ea3fc7cdad6c48a6ffa33f7..49328d3a28f6650e963140f2958989cee3fb0a61 100644
--- a/src/jamidht/contact_list.cpp
+++ b/src/jamidht/contact_list.cpp
@@ -78,7 +78,7 @@ ContactList::addContact(const dht::InfoHash& h, bool confirmed, const std::strin
     auto c = contacts_.find(h);
     if (c == contacts_.end())
         c = contacts_.emplace(h, Contact {}).first;
-    else if (c->second.isActive() and c->second.confirmed == confirmed)
+    else if (c->second.isActive() and c->second.confirmed == confirmed && c->second.conversationId == conversationId)
         return false;
     c->second.added = std::time(nullptr);
     // NOTE: because we can re-add a contact after removing it