diff --git a/src/contactmodel.cpp b/src/contactmodel.cpp
index 15971d70c1de29d63b85759e2f564f4540b2da60..c6f870647cdd17796b0aa69ea01062ab0abf6d3b 100644
--- a/src/contactmodel.cpp
+++ b/src/contactmodel.cpp
@@ -827,8 +827,11 @@ ContactModelPimpl::slotNewAccountMessage(std::string& accountId,
         if (contacts.find(from) == contacts.end()) {
             // Contact not found, load profile from database.
             // The conversation model will create an entry and link the incomingCall.
-            addToContacts(from, profile::Type::PENDING, false);
-            emitNewTrust = true;
+            auto type = (linked.owner.profileInfo.type == profile::Type::RING)
+                            ? profile::Type::PENDING
+                            : profile::Type::SIP;
+            addToContacts(from, type, false);
+            emitNewTrust = (linked.owner.profileInfo.type == profile::Type::RING);
         }
     }
     if (emitNewTrust) {
@@ -848,8 +851,11 @@ ContactModelPimpl::slotNewAccountTransfer(long long dringId, datatransfer::Info
         if (contacts.find(info.peerUri) == contacts.end()) {
             // Contact not found, load profile from database.
             // The conversation model will create an entry and link the incomingCall.
-            addToContacts(info.peerUri, profile::Type::PENDING, false);
-            emitNewTrust = true;
+            auto type = (linked.owner.profileInfo.type == profile::Type::RING)
+                            ? profile::Type::PENDING
+                            : profile::Type::SIP;
+            addToContacts(info.peerUri, type, false);
+            emitNewTrust = (linked.owner.profileInfo.type == profile::Type::RING);
         }
     }
     if (emitNewTrust) {