diff --git a/src/jamidht/conversation_channel_handler.cpp b/src/jamidht/conversation_channel_handler.cpp
index ca0405cb4a83c059d3abfebeda16bb92b65dc34f..6c295de031261d34f6ced56c8767ad74da3980dc 100644
--- a/src/jamidht/conversation_channel_handler.cpp
+++ b/src/jamidht/conversation_channel_handler.cpp
@@ -56,8 +56,8 @@ ConversationChannelHandler::onRequest(const std::shared_ptr<dht::crypto::Certifi
 
     if (auto acc = account_.lock())
         if (auto convModule = acc->convModule()) {
-            auto res = !convModule->isBannedDevice(conversationId,
-                                                   cert->issuer->getLongId().toString());
+            auto res = !convModule->isBanned(conversationId, cert->issuer->getId().toString());
+            res &= !convModule->isBanned(conversationId, cert->getLongId().toString());
             return res;
         }
     return false;
diff --git a/src/jamidht/conversation_module.cpp b/src/jamidht/conversation_module.cpp
index 84f0e06cd51634fb0eddd14563a653b4c37cf7ec..99a44d41cfca17c92e9200c04746d057daeec64c 100644
--- a/src/jamidht/conversation_module.cpp
+++ b/src/jamidht/conversation_module.cpp
@@ -2219,12 +2219,22 @@ ConversationModule::conversationVCard(const std::string& conversationId) const
 }
 
 bool
-ConversationModule::isBannedDevice(const std::string& convId, const std::string& deviceId) const
+ConversationModule::isBanned(const std::string& convId, const std::string& uri) const
 {
-    std::unique_lock<std::mutex> lk(pimpl_->conversationsMtx_);
-    auto conversation = pimpl_->conversations_.find(convId);
-    return conversation == pimpl_->conversations_.end() || !conversation->second
-           || conversation->second->isBanned(deviceId);
+    {
+        std::unique_lock<std::mutex> lk(pimpl_->conversationsMtx_);
+        auto conversation = pimpl_->conversations_.find(convId);
+        if (conversation == pimpl_->conversations_.end() || !conversation->second)
+            return true;
+        if (conversation->second->mode() != ConversationMode::ONE_TO_ONE) {
+            return conversation->second->isBanned(uri);
+        }
+    }
+    // If 1:1 we check the certificate status
+    if (auto acc = pimpl_->account_.lock()) {
+        return acc->accountManager()->getCertificateStatus(uri) == tls::TrustStore::PermissionStatus::BANNED;
+    }
+    return true;
 }
 
 void
diff --git a/src/jamidht/conversation_module.h b/src/jamidht/conversation_module.h
index 9b7d68fa586aa2cf1d7af7307ff006ded5ba7953..59d28770c0a9619812c0e42d6ffb436fc5661949 100644
--- a/src/jamidht/conversation_module.h
+++ b/src/jamidht/conversation_module.h
@@ -380,11 +380,11 @@ public:
     std::vector<uint8_t> conversationVCard(const std::string& conversationId) const;
 
     /**
-     * Return if a device is banned from a conversation
+     * Return if a device or member is banned from a conversation
      * @param convId
-     * @param deviceId
+     * @param uri
      */
-    bool isBannedDevice(const std::string& convId, const std::string& deviceId) const;
+    bool isBanned(const std::string& convId, const std::string& uri) const;
 
     // Remove swarm
     /**
diff --git a/src/jamidht/jamiaccount.cpp b/src/jamidht/jamiaccount.cpp
index 9837ef551ef465512efd5560d9085862bb5bb82a..8611a9cac324296f05064a9f8e4ad754209078a4 100644
--- a/src/jamidht/jamiaccount.cpp
+++ b/src/jamidht/jamiaccount.cpp
@@ -2038,7 +2038,7 @@ JamiAccount::doRegister_()
                     }
 
                     // Check if pull from banned device
-                    if (convModule()->isBannedDevice(conversationId, remoteDevice)) {
+                    if (convModule()->isBanned(conversationId, remoteDevice)) {
                         JAMI_WARNING(
                             "[Account {:s}] Git server requested for conversation {:s}, but the "
                             "device is "
diff --git a/src/jamidht/swarm/swarm_channel_handler.cpp b/src/jamidht/swarm/swarm_channel_handler.cpp
index 625795899a89f89959a248dfbabcc9b53425d629..3608c4170d330972ccdbab4dd82d6ec8a0306e92 100644
--- a/src/jamidht/swarm/swarm_channel_handler.cpp
+++ b/src/jamidht/swarm/swarm_channel_handler.cpp
@@ -57,8 +57,8 @@ SwarmChannelHandler::onRequest(const std::shared_ptr<dht::crypto::Certificate>&
     auto conversationId = name.substr(sep + 1);
     if (auto acc = account_.lock())
         if (auto convModule = acc->convModule()) {
-            auto res = !convModule->isBannedDevice(conversationId,
-                                                   cert->issuer->getLongId().toString());
+            auto res = !convModule->isBanned(conversationId, cert->issuer->getId().toString());
+            res &= !convModule->isBanned(conversationId, cert->getLongId().toString());
             return res;
         }
     return false;