diff --git a/src/jamidht/jamiaccount.cpp b/src/jamidht/jamiaccount.cpp
index 9b7eac1bd8163c24542494dd4ada36bca74d874a..6c1d7c166fb7d7a882a72f94025a603c46c739f7 100644
--- a/src/jamidht/jamiaccount.cpp
+++ b/src/jamidht/jamiaccount.cpp
@@ -1652,8 +1652,12 @@ JamiAccount::registerAsyncOps()
 {
     auto onLoad = [this, loaded = std::make_shared<std::atomic_uint>()]{
         if (++(*loaded) == 2u) {
-            std::lock_guard<std::mutex> lock(configurationMutex_);
-            doRegister_();
+            runOnMainThread([w = weak()]{
+                if (auto s = w.lock()) {
+                    std::lock_guard<std::mutex> lock(s->configurationMutex_);
+                    s->doRegister_();
+                }
+            });
         }
     };