diff --git a/src/jamidht/contact_list.cpp b/src/jamidht/contact_list.cpp
index 1d88a227a7208a5babc6e68deb725a2931a2ab6c..351bc2b66ba56c0fea9433b8949768386b1e24e0 100644
--- a/src/jamidht/contact_list.cpp
+++ b/src/jamidht/contact_list.cpp
@@ -81,6 +81,10 @@ ContactList::addContact(const dht::InfoHash& h, bool confirmed, const std::strin
     else if (c->second.isActive() and c->second.confirmed == confirmed)
         return false;
     c->second.added = std::time(nullptr);
+    // NOTE: because we can re-add a contact after removing it
+    // we should reset removed (as not removed anymore). This fix isActive()
+    // if addContact is called just after removeContact during the same second
+    c->second.removed = 0;
     c->second.conversationId = conversationId;
     c->second.confirmed |= confirmed;
     auto hStr = h.toString();