diff --git a/src/jamidht/conversation_module.cpp b/src/jamidht/conversation_module.cpp
index 1c732e26096dd0ce24dc9f9bd29f4085eb4fe690..bf347d10c5a49f6174387a0e468e497edda2a217 100644
--- a/src/jamidht/conversation_module.cpp
+++ b/src/jamidht/conversation_module.cpp
@@ -1019,9 +1019,8 @@ ConversationModule::onTrustRequest(const std::string& uri,
     req.from = uri;
     req.conversationId = conversationId;
     req.received = std::time(nullptr);
-    auto details = vCard::utils::toMap(
-        std::string_view(reinterpret_cast<const char*>(payload.data()), payload.size()));
-    req.metadatas = ConversationRepository::infosFromVCard(details);
+    req.metadatas = ConversationRepository::infosFromVCard(vCard::utils::toMap(
+        std::string_view(reinterpret_cast<const char*>(payload.data()), payload.size())));
     auto reqMap = req.toMap();
     pimpl_->addConversationRequest(conversationId, std::move(req));
     emitSignal<DRing::ConversationSignal::ConversationRequestReceived>(pimpl_->accountId_,
diff --git a/src/jamidht/conversationrepository.cpp b/src/jamidht/conversationrepository.cpp
index d73162d2e8b299cc2a19b330a8b30fd3b7229a9e..ae91f11f32e892ccf169fa53ea9d48342ac59eed 100644
--- a/src/jamidht/conversationrepository.cpp
+++ b/src/jamidht/conversationrepository.cpp
@@ -3536,16 +3536,16 @@ ConversationRepository::infos() const
 }
 
 std::map<std::string, std::string>
-ConversationRepository::infosFromVCard(const std::map<std::string, std::string>& details)
+ConversationRepository::infosFromVCard(std::map<std::string, std::string>&& details)
 {
     std::map<std::string, std::string> result;
-    for (const auto& [k, v] : details) {
+    for (auto&& [k, v] : details) {
         if (k == vCard::Property::FORMATTED_NAME) {
-            result["title"] = v;
+            result["title"] = std::move(v);
         } else if (k == vCard::Property::DESCRIPTION) {
-            result["description"] = v;
+            result["description"] = std::move(v);
         } else if (k.find(vCard::Property::PHOTO) == 0) {
-            result["avatar"] = v;
+            result["avatar"] = std::move(v);
         }
     }
     return result;
diff --git a/src/jamidht/conversationrepository.h b/src/jamidht/conversationrepository.h
index 5c193366d770f80fc476c0a4ae817ed32d9951b3..ec1420d2150c83d67241279848489df7621f05ac 100644
--- a/src/jamidht/conversationrepository.h
+++ b/src/jamidht/conversationrepository.h
@@ -350,7 +350,7 @@ public:
      */
     std::map<std::string, std::string> infos() const;
     static std::map<std::string, std::string> infosFromVCard(
-        const std::map<std::string, std::string>& details);
+        std::map<std::string, std::string>&& details);
 
     /**
      * Retrieve account's URI from deviceId