diff --git a/src/conversationmodel.cpp b/src/conversationmodel.cpp
index 7d7bae3a12c17436a3f3a9f32a56ca970ff38820..771747688bdb3ca616cf1ecf840e5852b2173b9a 100644
--- a/src/conversationmodel.cpp
+++ b/src/conversationmodel.cpp
@@ -801,6 +801,9 @@ ConversationModel::removeConversation(const QString& uid, bool banned)
     }
     if (conversation.isSwarm()) {
         ConfigurationManager::instance().removeConversation(owner.id, uid);
+        pimpl_->eraseConversation(conversationIdx);
+        pimpl_->invalidateModel();
+        emit conversationRemoved(uid);
 
         // Still some other conversation, do nothing else
         if (!banned && getConversationForPeerUri(peers.front()) != std::nullopt)