diff --git a/contrib/src/dhtnet/rules.mak b/contrib/src/dhtnet/rules.mak
index b158b70d1a324a7525f3c0b5e4eca35fce8feaa0..5f62ffd7d4423968fbce6ae3a7114d9bfe0b7221 100644
--- a/contrib/src/dhtnet/rules.mak
+++ b/contrib/src/dhtnet/rules.mak
@@ -20,7 +20,6 @@ dhtnet: dhtnet-$(DHTNET_VERSION).tar.gz
 	mkdir -p $(UNPACK_DIR)
 	$(UNPACK) -C $(UNPACK_DIR)
 	$(APPLY) $(SRC)/dhtnet/libjami-testable.patch
-	$(APPLY) $(SRC)/dhtnet/test.patch
 	$(MOVE)
 
 .dhtnet: dhtnet toolchain.cmake .sum-dhtnet
diff --git a/contrib/src/dhtnet/test.patch b/contrib/src/dhtnet/test.patch
deleted file mode 100644
index 63ec14e2a6e75296c30b8db3ff202f54fb197fc1..0000000000000000000000000000000000000000
--- a/contrib/src/dhtnet/test.patch
+++ /dev/null
@@ -1,43 +0,0 @@
- src/security/certstore.cpp | 28 +++++++++++++++++++++-------
- 1 file changed, 21 insertions(+), 7 deletions(-)
-
-diff --git a/src/security/certstore.cpp b/src/security/certstore.cpp
-index 9b6bb96..2a3fa8a 100644
---- a/src/security/certstore.cpp
-+++ b/src/security/certstore.cpp
-@@ -591,14 +591,28 @@ TrustStore::PermissionStatus
- TrustStore::getCertificateStatus(const std::string& cert_id) const
- {
-     std::lock_guard<std::recursive_mutex> lk(mutex_);
--    auto s = certStatus_.find(cert_id);
--    if (s == std::end(certStatus_)) {
--        auto us = unknownCertStatus_.find(cert_id);
--        if (us == std::end(unknownCertStatus_))
--            return PermissionStatus::UNDEFINED;
--        return us->second.allowed ? PermissionStatus::ALLOWED : PermissionStatus::BANNED;
-+    auto cert = certStore_.getCertificate(cert_id);
-+    if (!cert)
-+        return PermissionStatus::UNDEFINED;
-+    auto banned = false;
-+    auto unknown = true;
-+    while (cert) {
-+        auto s = certStatus_.find(cert->getId().toString());
-+        unknown &= s == std::end(certStatus_);
-+        if (s != std::end(certStatus_) && !s->second.second.allowed) {
-+            return PermissionStatus::BANNED;
-+        } else {
-+            auto us = unknownCertStatus_.find(cert->getId().toString());
-+            unknown &= us == std::end(unknownCertStatus_);
-+            if (!us->second.allowed)
-+                return PermissionStatus::BANNED;
-+        }
-+        if (cert->getUID() == cert->getIssuerUID())
-+            break;
-+        cert = certStore_.getCertificate(cert->getIssuerUID());
-     }
--    return s->second.second.allowed ? PermissionStatus::ALLOWED : PermissionStatus::BANNED;
-+
-+    return unknown ? PermissionStatus::UNDEFINED : PermissionStatus::ALLOWED;
- }
-
- std::vector<std::string>
diff --git a/src/jamidht/account_manager.cpp b/src/jamidht/account_manager.cpp
index 47512cd36bfc6be0cfcae2c6a23de2fea2a725c6..3559ca1fa9643c2f4636d679b81fc26288446761 100644
--- a/src/jamidht/account_manager.cpp
+++ b/src/jamidht/account_manager.cpp
@@ -112,7 +112,7 @@ AccountManager::loadIdentity(const std::string& accountId,
                              const std::string& key_path,
                              const std::string& key_pwd) const
 {
-    // Return to avoid unnecessary log if certificate or key is missing. Example case: when
+    // Return to avoid unnecessary log if certificate or key is missing. Example case: when 
     // importing an account when the certificate has not been unpacked from the archive.
     if (crt_path.empty() or key_path.empty())
         return {};
diff --git a/src/jamidht/jamiaccount.cpp b/src/jamidht/jamiaccount.cpp
index 1cbd04cff1c59c734e525233b1639903c430b8a9..ea0fc7483a984ad629f3ce0001d827a9849e7286 100644
--- a/src/jamidht/jamiaccount.cpp
+++ b/src/jamidht/jamiaccount.cpp
@@ -2166,7 +2166,7 @@ JamiAccount::convModule()
                     if (!shared)
                         return;
                     std::lock_guard<std::mutex> lkCM(shared->connManagerMtx_);
-                    if (!shared->connectionManager_ || shared->convModule()->isBanned(convId, deviceId)) {
+                    if (!shared->connectionManager_) {
                         Manager::instance().ioContext()->post([cb] { cb({}); });
                         return;
                     }
diff --git a/test/unitTest/certstore.cpp b/test/unitTest/certstore.cpp
index c6f1f31477234456ed55ef9f7b1cae298130e2f5..a16f5320c1e7fd04b6ebb3c9fae82f66a9bf5971 100644
--- a/test/unitTest/certstore.cpp
+++ b/test/unitTest/certstore.cpp
@@ -56,12 +56,10 @@ public:
 private:
     void trustStoreTest();
     void getCertificateWithSplitted();
-    void testBannedParent();
 
     CPPUNIT_TEST_SUITE(CertStoreTest);
     CPPUNIT_TEST(trustStoreTest);
     CPPUNIT_TEST(getCertificateWithSplitted);
-    CPPUNIT_TEST(testBannedParent);
     CPPUNIT_TEST_SUITE_END();
 };
 
@@ -216,29 +214,6 @@ CertStoreTest::getCertificateWithSplitted()
                    && fullCert->issuer->issuer->getUID() == caCert->getUID());
 }
 
-void
-CertStoreTest::testBannedParent()
-{
-    auto aliceAccount = Manager::instance().getAccount<JamiAccount>(aliceId);
-
-    auto ca = dht::crypto::generateIdentity("test CA");
-    auto account = dht::crypto::generateIdentity("test account", ca, 4096, true);
-    auto device = dht::crypto::generateIdentity("test device", account);
-    auto device2 = dht::crypto::generateIdentity("test device 2", account);
-    auto id = ca.second->getId().toString();
-    auto pinned = aliceAccount->certStore().getPinnedCertificates();
-    CPPUNIT_ASSERT(std::find_if(pinned.begin(), pinned.end(), [&](auto v) { return v == id; })
-                   == pinned.end());
-
-    // Ban account
-    aliceAccount->setCertificateStatus(account.second, dhtnet::tls::TrustStore::PermissionStatus::BANNED);
-    CPPUNIT_ASSERT(aliceAccount->accountManager()->getCertificateStatus(account.second->getId().toString())
-                   == dhtnet::tls::TrustStore::PermissionStatus::BANNED);
-    CPPUNIT_ASSERT(not aliceAccount->accountManager()->isAllowed(*account.second));
-    CPPUNIT_ASSERT(not aliceAccount->accountManager()->isAllowed(*device2.second));
-    CPPUNIT_ASSERT(not aliceAccount->accountManager()->isAllowed(*device.second));
-}
-
 } // namespace test
 } // namespace jami
 
diff --git a/test/unitTest/conversation/conversationRequest.cpp b/test/unitTest/conversation/conversationRequest.cpp
index bc69699fa2f0585f2f99c2d3d396e23e9531fc7d..09b7fee5806bd3ef40b4f3efdd65bfcc78620169 100644
--- a/test/unitTest/conversation/conversationRequest.cpp
+++ b/test/unitTest/conversation/conversationRequest.cpp
@@ -68,7 +68,6 @@ public:
     void testRemoveSelfDoesntRemoveConversation();
     void testRemoveConversationUpdateContactDetails();
     void testBanContact();
-    void testBanContactRestartAccount();
     void testBanContactRemoveTrustRequest();
     void testAddOfflineContactThenConnect();
     void testDeclineTrustRequestDoNotGenerateAnother();
@@ -98,7 +97,6 @@ private:
     CPPUNIT_TEST(testRemoveSelfDoesntRemoveConversation);
     CPPUNIT_TEST(testRemoveConversationUpdateContactDetails);
     CPPUNIT_TEST(testBanContact);
-    CPPUNIT_TEST(testBanContactRestartAccount);
     CPPUNIT_TEST(testBanContactRemoveTrustRequest);
     CPPUNIT_TEST(testAddOfflineContactThenConnect);
     CPPUNIT_TEST(testDeclineTrustRequestDoNotGenerateAnother);
@@ -987,103 +985,6 @@ ConversationRequestTest::testBanContact()
     CPPUNIT_ASSERT(fileutils::isDirectory(repoPath));
 }
 
-
-void
-ConversationRequestTest::testBanContactRestartAccount()
-{
-    auto aliceAccount = Manager::instance().getAccount<JamiAccount>(aliceId);
-    auto bobAccount = Manager::instance().getAccount<JamiAccount>(bobId);
-    auto bobUri = bobAccount->getUsername();
-    auto aliceUri = aliceAccount->getUsername();
-    std::mutex mtx;
-    std::unique_lock<std::mutex> lk {mtx};
-    std::condition_variable cv;
-    std::map<std::string, std::shared_ptr<libjami::CallbackWrapperBase>> confHandlers;
-    bool conversationReady = false, requestReceived = false, memberMessageGenerated = false;
-    std::string convId = "";
-    confHandlers.insert(
-        libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
-            [&](const std::string& account_id,
-                const std::string& /*from*/,
-                const std::string& /*conversationId*/,
-                const std::vector<uint8_t>& /*payload*/,
-                time_t /*received*/) {
-                if (account_id == bobId)
-                    requestReceived = true;
-                cv.notify_one();
-            }));
-    confHandlers.insert(libjami::exportable_callback<libjami::ConversationSignal::ConversationReady>(
-        [&](const std::string& accountId, const std::string& conversationId) {
-            if (accountId == aliceId) {
-                convId = conversationId;
-            } else if (accountId == bobId) {
-                conversationReady = true;
-            }
-            cv.notify_one();
-        }));
-    confHandlers.insert(libjami::exportable_callback<libjami::ConversationSignal::MessageReceived>(
-        [&](const std::string& accountId,
-            const std::string& conversationId,
-            std::map<std::string, std::string> message) {
-            if (accountId == aliceId && conversationId == convId && message["type"] == "member") {
-                memberMessageGenerated = true;
-            }
-            cv.notify_one();
-        }));
-    bool contactRemoved = false;
-    confHandlers.insert(libjami::exportable_callback<libjami::ConfigurationSignal::ContactRemoved>(
-        [&](const std::string& accountId, const std::string& uri, bool) {
-            if (accountId == bobId && uri == aliceUri) {
-                contactRemoved = true;
-            }
-            cv.notify_one();
-        }));
-    auto bobConnected = false;
-    confHandlers.insert(
-        libjami::exportable_callback<libjami::ConfigurationSignal::VolatileDetailsChanged>(
-            [&](const std::string&, const std::map<std::string, std::string>&) {
-                auto details = bobAccount->getVolatileAccountDetails();
-                auto daemonStatus = details[libjami::Account::ConfProperties::Registration::STATUS];
-                if (daemonStatus == "REGISTERED") {
-                    bobConnected = true;
-                } else if (daemonStatus == "UNREGISTERED") {
-                    bobConnected = false;
-                }
-                cv.notify_one();
-            }));
-    libjami::registerSignalHandlers(confHandlers);
-
-    aliceAccount->addContact(bobUri);
-    aliceAccount->sendTrustRequest(bobUri, {});
-    CPPUNIT_ASSERT(cv.wait_for(lk, 5s, [&]() { return !convId.empty(); }));
-    // Check created files
-    CPPUNIT_ASSERT(cv.wait_for(lk, 30s, [&]() { return requestReceived; }));
-    memberMessageGenerated = false;
-    CPPUNIT_ASSERT(bobAccount->acceptTrustRequest(aliceUri));
-    CPPUNIT_ASSERT(cv.wait_for(lk, 30s, [&]() { return memberMessageGenerated; }));
-
-    memberMessageGenerated = false;
-    bobAccount->removeContact(aliceUri, true);
-    CPPUNIT_ASSERT(cv.wait_for(lk, 30s, [&]() { return contactRemoved; }));
-    std::this_thread::sleep_for(10s); // Wait a bit to ensure that everything is updated
-    bobConnected = true;
-    Manager::instance().sendRegister(bobId, false);
-    CPPUNIT_ASSERT(cv.wait_for(lk, 30s, [&]() { return !bobConnected; }));
-    std::this_thread::sleep_for(5s); // Wait a bit to ensure that everything is updated
-
-    // Connect bob, it will trigger the bootstrap
-    auto statusBootstrap = Conversation::BootstrapStatus::SUCCESS;
-    // alice is banned so bootstrap MUST fail
-    bobAccount->convModule()->onBootstrapStatus(
-        [&](std::string /*convId*/, Conversation::BootstrapStatus status) {
-            statusBootstrap = status;
-            cv.notify_one();
-        });
-    Manager::instance().sendRegister(bobId, true);
-    CPPUNIT_ASSERT(cv.wait_for(lk, 60s, [&]() { return statusBootstrap == Conversation::BootstrapStatus::FAILED; }));
-
-}
-
 void
 ConversationRequestTest::testBanContactRemoveTrustRequest()
 {