diff --git a/src/jamidht/conversation_module.cpp b/src/jamidht/conversation_module.cpp
index 623db0a95b9e41bd3e6bedd7a70e95b64579790f..8919f1831d9886c7891a410f5ffde456fb32e1de 100644
--- a/src/jamidht/conversation_module.cpp
+++ b/src/jamidht/conversation_module.cpp
@@ -1933,12 +1933,18 @@ ConversationModule::onSyncData(const SyncMsg& msg,
             auto& ci = pimpl_->convInfos_;
             auto itConv = ci.find(convId);
             if (itConv != ci.end()) {
-                itConv->second.removed = std::time(nullptr);
-                if (convInfo.erased) {
+                auto update = false;
+                if (!itConv->second.removed) {
+                    update = true;
+                    itConv->second.removed = std::time(nullptr);
+                }
+                if (convInfo.erased && !itConv->second.erased) {
                     itConv->second.erased = std::time(nullptr);
                     pimpl_->saveConvInfos();
                     lk.unlock();
                     pimpl_->removeRepository(convId, false);
+                } else if (update) {
+                    pimpl_->saveConvInfos();
                 }
             }
         }