diff --git a/src/jamidht/conversation.cpp b/src/jamidht/conversation.cpp
index cea344fe15e0a72bf57b2406cb4f4af13d88c720..5f5a9b0c1629a270036533e290662c54d76cbf99 100644
--- a/src/jamidht/conversation.cpp
+++ b/src/jamidht/conversation.cpp
@@ -864,19 +864,23 @@ Conversation::shutdownConnections()
 {
     pimpl_->fallbackTimer_->cancel();
     pimpl_->gitSocketList_.clear();
-    pimpl_->swarmManager_->shutdown();
+    if (pimpl_->swarmManager_)
+        pimpl_->swarmManager_->shutdown();
     pimpl_->checkedMembers_.clear();
 }
 
 void
 Conversation::connectivityChanged()
 {
-    pimpl_->swarmManager_->maintainBuckets();
+    if (pimpl_->swarmManager_)
+        pimpl_->swarmManager_->maintainBuckets();
 }
 
 bool
 Conversation::hasSwarmChannel(const std::string& deviceId)
 {
+    if (!pimpl_->swarmManager_)
+        return false;
     return pimpl_->swarmManager_->isConnectedWith(DeviceId(deviceId));
 }
 
diff --git a/src/jamidht/conversation_module.cpp b/src/jamidht/conversation_module.cpp
index 62f5af68207b2684c82ac00a958cd5e11083c9f2..0f7c28db81d47a8991352d4c6f16c5547109865c 100644
--- a/src/jamidht/conversation_module.cpp
+++ b/src/jamidht/conversation_module.cpp
@@ -2707,11 +2707,9 @@ ConversationModule::addSwarmChannel(const std::string& conversationId,
 void
 ConversationModule::connectivityChanged()
 {
-    {
-        std::lock_guard<std::mutex> lk(pimpl_->conversationsMtx_);
-        for (auto& [k, conversation] : pimpl_->conversations_) {
-            conversation->connectivityChanged();
-        }
+    std::lock_guard<std::mutex> lk(pimpl_->conversationsMtx_);
+    for (auto& [k, conversation] : pimpl_->conversations_) {
+        conversation->connectivityChanged();
     }
 }
 } // namespace jami