diff --git a/src/jamidht/conversation_module.cpp b/src/jamidht/conversation_module.cpp
index 747c02de4ed30ad3b9e71a803a71dc4fd473958e..f387d5cbf0703113d6b8d850be2bced3696daf9d 100644
--- a/src/jamidht/conversation_module.cpp
+++ b/src/jamidht/conversation_module.cpp
@@ -783,6 +783,7 @@ ConversationModule::Impl::handlePendingConversation(const std::string& conversat
     } catch (const std::exception& e) {
         JAMI_WARN("Something went wrong when cloning conversation: %s", e.what());
     }
+    lk.lock();
     erasePending();
 }
 
diff --git a/test/unitTest/conversation/conversation.cpp b/test/unitTest/conversation/conversation.cpp
index 92a37f12e714fd7b4548b3c9f69b080a8d77fb92..410a276bbae54643c5de60d3b36f978fade41b88 100644
--- a/test/unitTest/conversation/conversation.cpp
+++ b/test/unitTest/conversation/conversation.cpp
@@ -3402,10 +3402,12 @@ ConversationTest::testCloneFromMultipleDevice()
 
     // Alice re-adds Bob
     auto oldConv = convId;
+    conversationRmAlice = false;
     aliceAccount->addContact(bobUri);
     aliceAccount->sendTrustRequest(bobUri, {});
     // This should retrieve the conversation from Bob and don't show any error
     CPPUNIT_ASSERT(!cv.wait_for(lk, 10s, [&]() { return errorDetected; }));
+    CPPUNIT_ASSERT(conversationRmAlice);
     CPPUNIT_ASSERT(oldConv == convId); // Check that convId didn't change and conversation is ready.
 }