diff --git a/src/jamidht/account_manager.cpp b/src/jamidht/account_manager.cpp
index d20f0f9f294b18005006ebc474fb366de2caf02b..431e3a405d67312c33b8ee095a4795abc94361d7 100644
--- a/src/jamidht/account_manager.cpp
+++ b/src/jamidht/account_manager.cpp
@@ -114,7 +114,7 @@ AccountManager::useIdentity(const dht::crypto::Identity& identity,
                             const std::string& receipt,
                             const std::vector<uint8_t>& receiptSignature,
                             const std::string& username,
-                            OnChangeCallback&& onChange)
+                            const OnChangeCallback& onChange)
 {
     if (receipt.empty() or receiptSignature.empty())
         return nullptr;
diff --git a/src/jamidht/account_manager.h b/src/jamidht/account_manager.h
index 43ec7c7e3c939ef73397a4176b767877708ab5db..0fb6177b6938e0177dde2af1e174283f2201c460 100644
--- a/src/jamidht/account_manager.h
+++ b/src/jamidht/account_manager.h
@@ -119,7 +119,7 @@ public:
                                     std::unique_ptr<AccountCredentials> credentials,
                                     AuthSuccessCallback onSuccess,
                                     AuthFailureCallback onFailure,
-                                    OnChangeCallback onChange)
+                                    const OnChangeCallback& onChange)
         = 0;
 
     virtual bool changePassword(const std::string& password_old, const std::string& password_new) = 0;
@@ -136,7 +136,7 @@ public:
                                    const std::string& receipt,
                                    const std::vector<uint8_t>& receiptSignature,
                                    const std::string& username,
-                                   OnChangeCallback&& onChange);
+                                   const OnChangeCallback& onChange);
 
     void setDht(const std::shared_ptr<dht::DhtRunner>& dht) { dht_ = dht; }
 
diff --git a/src/jamidht/archive_account_manager.cpp b/src/jamidht/archive_account_manager.cpp
index 28249e94e4917df8d95a92330900cf5e50dfadb7..f122003cc42cacbf495b050dce9a87bf8be25e36 100644
--- a/src/jamidht/archive_account_manager.cpp
+++ b/src/jamidht/archive_account_manager.cpp
@@ -40,7 +40,7 @@ ArchiveAccountManager::initAuthentication(PrivateKey key,
                                           std::unique_ptr<AccountCredentials> credentials,
                                           AuthSuccessCallback onSuccess,
                                           AuthFailureCallback onFailure,
-                                          OnChangeCallback onChange)
+                                          const OnChangeCallback& onChange)
 {
     auto ctx = std::make_shared<AuthContext>();
     ctx->key = key;
diff --git a/src/jamidht/archive_account_manager.h b/src/jamidht/archive_account_manager.h
index 266332a7e0e99c7022180553dfa0b15018a7ccde..d965ef20257d933392be77137959cce417e93f20 100644
--- a/src/jamidht/archive_account_manager.h
+++ b/src/jamidht/archive_account_manager.h
@@ -47,7 +47,7 @@ public:
                             std::unique_ptr<AccountCredentials> credentials,
                             AuthSuccessCallback onSuccess,
                             AuthFailureCallback onFailure,
-                            OnChangeCallback onChange) override;
+                            const OnChangeCallback& onChange) override;
 
     void startSync(const OnNewDeviceCb&, const OnDeviceAnnouncedCb& dcb = {}) override;
 
diff --git a/src/jamidht/jamiaccount.cpp b/src/jamidht/jamiaccount.cpp
index c3c0e28be49b7a9f9b47fdc7f819af3af7bf3d92..d034fe7abee4f47ba9ab48bf21273fed5a230646 100644
--- a/src/jamidht/jamiaccount.cpp
+++ b/src/jamidht/jamiaccount.cpp
@@ -1231,7 +1231,7 @@ JamiAccount::loadAccount(const std::string& archive_password,
                                                      receipt_,
                                                      receiptSignature_,
                                                      managerUsername_,
-                                                     std::move(callbacks))) {
+                                                     callbacks)) {
             // normal loading path
             id_ = std::move(id);
             username_ = info->accountId;
@@ -1368,7 +1368,7 @@ JamiAccount::loadAccount(const std::string& archive_password,
                         });
                     }
                 },
-                std::move(callbacks));
+                callbacks);
         }
     } catch (const std::exception& e) {
         JAMI_WARN("[Account %s] error loading account: %s", getAccountID().c_str(), e.what());
diff --git a/src/jamidht/server_account_manager.cpp b/src/jamidht/server_account_manager.cpp
index 02d9c2bc4b7705b414a22d2dbbde3fa03c3626c0..1c740bf5e7a6235674bdfdedb65186f71ec60438 100644
--- a/src/jamidht/server_account_manager.cpp
+++ b/src/jamidht/server_account_manager.cpp
@@ -67,7 +67,7 @@ ServerAccountManager::initAuthentication(PrivateKey key,
                                          std::unique_ptr<AccountCredentials> credentials,
                                          AuthSuccessCallback onSuccess,
                                          AuthFailureCallback onFailure,
-                                         OnChangeCallback onChange)
+                                         const OnChangeCallback& onChange)
 {
     auto ctx = std::make_shared<AuthContext>();
     ctx->key = key;
diff --git a/src/jamidht/server_account_manager.h b/src/jamidht/server_account_manager.h
index 8645519f18ab094826f44a80aa483e997e51179c..8fc6f9fd7d7dcce325fc766f249b3410e8f1eed1 100644
--- a/src/jamidht/server_account_manager.h
+++ b/src/jamidht/server_account_manager.h
@@ -45,7 +45,7 @@ public:
                             std::unique_ptr<AccountCredentials> credentials,
                             AuthSuccessCallback onSuccess,
                             AuthFailureCallback onFailure,
-                            OnChangeCallback onChange) override;
+                            const OnChangeCallback& onChange) override;
 
     bool changePassword(const std::string& /*password_old*/,
                         const std::string& /*password_new*/) override