diff --git a/src/jamidht/account_manager.cpp b/src/jamidht/account_manager.cpp
index a8581a059e87e9c610f461bacbeac31abf0247da..e2c37a7b2457a99d6008b087a9e60500bdeeddfd 100644
--- a/src/jamidht/account_manager.cpp
+++ b/src/jamidht/account_manager.cpp
@@ -93,6 +93,7 @@ AccountManager::useIdentity(
     const dht::crypto::Identity& identity,
     const std::string& receipt,
     const std::vector<uint8_t>& receiptSignature,
+    const std::string& username,
     OnChangeCallback&& onChange)
 {
     if (receipt.empty() or receiptSignature.empty())
@@ -158,6 +159,7 @@ AccountManager::useIdentity(
     info->deviceId = identity.first->getPublicKey().getId().toString();
     info->announce = std::move(announce);
     info->ethAccount = root["eth"].asString();
+    info->username = username;
     info_ = std::move(info);
 
     JAMI_DBG("[Auth] Device %s receipt checked successfully for account %s", info_->deviceId.c_str(), id.c_str());
diff --git a/src/jamidht/account_manager.h b/src/jamidht/account_manager.h
index 790d18ef6a61f3ea067b55c12908fb18efb58a3e..40fc32c27ef0f8bffb3735934008810b4775877c 100644
--- a/src/jamidht/account_manager.h
+++ b/src/jamidht/account_manager.h
@@ -48,6 +48,7 @@ struct AccountInfo {
     std::string deviceId;
     std::shared_ptr<dht::Value> announce;
     std::string ethAccount;
+    std::string username;
 };
 
 template <typename To, typename From>
@@ -125,6 +126,7 @@ public:
         const dht::crypto::Identity& id,
         const std::string& receipt,
         const std::vector<uint8_t>& receiptSignature,
+        const std::string& username,
         OnChangeCallback&& onChange);
 
     void setDht(const std::shared_ptr<dht::DhtRunner>& dht) { dht_ = dht; }
diff --git a/src/jamidht/jamiaccount.cpp b/src/jamidht/jamiaccount.cpp
index 64dd0e5559d698e57c46821c271dd1135974817c..984d0bc2180861c8dab7b30883eb4db6b521f29a 100644
--- a/src/jamidht/jamiaccount.cpp
+++ b/src/jamidht/jamiaccount.cpp
@@ -913,7 +913,7 @@ JamiAccount::loadAccount(const std::string& archive_password, const std::string&
         }
 
         auto id = accountManager_->loadIdentity(tlsCertificateFile_, tlsPrivateKeyFile_, tlsPassword_);
-        if (auto info = accountManager_->useIdentity(id, receipt_, receiptSignature_, std::move(callbacks))) {
+        if (auto info = accountManager_->useIdentity(id, receipt_, receiptSignature_, managerUsername_, std::move(callbacks))) {
             // normal loading path
             id_ = std::move(id);
             username_ = RING_URI_PREFIX+info->accountId;
diff --git a/src/jamidht/server_account_manager.cpp b/src/jamidht/server_account_manager.cpp
index fecb5fd1babc05f28c9ae614cb66246fd638c5f6..8d87c14fc1d91849d507a8a866b6fd1e9631a08b 100644
--- a/src/jamidht/server_account_manager.cpp
+++ b/src/jamidht/server_account_manager.cpp
@@ -166,6 +166,7 @@ ServerAccountManager::initAuthentication(
                     if (not info->announce) {
                         ctx->onFailure(AuthError::SERVER_ERROR, "Can't parse announce from server");
                     }
+                    info->username = ctx->credentials->username;
 
                     this_.creds_ = std::move(ctx->credentials);
                     this_.info_ = std::move(info);