diff --git a/src/api/contactmodel.h b/src/api/contactmodel.h
index 9bceef8923e8ac9f567dc8d675351017a86e029e..9ce1042bfb1ab1003f8a5f446ec58b60d88194e4 100644
--- a/src/api/contactmodel.h
+++ b/src/api/contactmodel.h
@@ -125,7 +125,7 @@ Q_SIGNALS:
     /**
      * Connect this signal to know when this model was updated.
      */
-    void modelUpdated(const QString& uri, bool needsSorted = true) const;
+    void modelUpdated(const QString& uri) const;
     /**
      * Connect this signal to know when a contact was added.
      * @param contactUri
diff --git a/src/contactmodel.cpp b/src/contactmodel.cpp
index b08ab5765007844dc7fe65b03c990ba15830319f..186373a69d7d23dde97dc0b14f44d6ef434dfb1b 100644
--- a/src/contactmodel.cpp
+++ b/src/contactmodel.cpp
@@ -737,7 +737,7 @@ ContactModelPimpl::fillWithJamiContacts()
                     auto it = contacts.find(uri);
                     if (it != contacts.end()) {
                         it->isPresent = key == "Online";
-                        linked.modelUpdated(uri, false);
+                        linked.modelUpdated(uri);
                     }
                 }
                 break;
@@ -762,7 +762,7 @@ ContactModelPimpl::slotNewBuddySubscription(const QString& accountId,
         } else
             return;
     }
-    emit linked.modelUpdated(contactUri, false);
+    emit linked.modelUpdated(contactUri);
 }
 
 void
@@ -1200,29 +1200,27 @@ ContactModelPimpl::slotUserSearchEnded(const QString& accountId,
     searchResult.clear();
     switch (status) {
     case 0: /* SUCCESS */
+        for (auto& resultInfo : result) {
+            if (contacts.find(resultInfo.value("id")) != contacts.end()) {
+                continue;
+            }
+            profile::Info profileInfo;
+            profileInfo.uri = resultInfo.value("id");
+            profileInfo.type = profile::Type::TEMPORARY;
+            profileInfo.avatar = resultInfo.value("profilePicture");
+            profileInfo.alias = resultInfo.value("firstName") + " " + resultInfo.value("lastName");
+            contact::Info contactInfo;
+            contactInfo.profileInfo = profileInfo;
+            contactInfo.registeredName = resultInfo.value("username");
+            searchResult.insert(profileInfo.uri, contactInfo);
+        }
+        updateTemporaryMessage("");
         break;
     case 3: /* ERROR */
         updateTemporaryMessage("could not find contact matching search");
-        emit linked.modelUpdated(query);
-        return;
+        break;
     default:
-        emit linked.modelUpdated(query);
-        return;
-    }
-    updateTemporaryMessage("");
-    for (auto& resultInfo : result) {
-        if (contacts.find(resultInfo.value("id")) != contacts.end()) {
-            continue;
-        }
-        profile::Info profileInfo;
-        profileInfo.uri = resultInfo.value("id");
-        profileInfo.type = profile::Type::TEMPORARY;
-        profileInfo.avatar = resultInfo.value("profilePicture");
-        profileInfo.alias = resultInfo.value("firstName") + " " + resultInfo.value("lastName");
-        contact::Info contactInfo;
-        contactInfo.profileInfo = profileInfo;
-        contactInfo.registeredName = resultInfo.value("username");
-        searchResult.insert(profileInfo.uri, contactInfo);
+        break;
     }
     emit linked.modelUpdated(query);
 }
diff --git a/src/conversationmodel.cpp b/src/conversationmodel.cpp
index be31a18f0de155befd6e95b4e739a2f958069645..1dc70f618711bf2854ccd8557c76a990fa77c5f9 100644
--- a/src/conversationmodel.cpp
+++ b/src/conversationmodel.cpp
@@ -225,7 +225,7 @@ public Q_SLOTS:
     /**
      * Listen from contactModel when updated (like new alias, avatar, etc.)
      */
-    void slotContactModelUpdated(const QString& uri, bool needsSorted);
+    void slotContactModelUpdated(const QString& uri);
     /**
      * Listen from contactModel when a new contact is added
      * @param uri
@@ -1770,19 +1770,15 @@ ConversationModelPimpl::slotContactRemoved(const QString& uri)
 }
 
 void
-ConversationModelPimpl::slotContactModelUpdated(const QString& uri, bool needsSorted)
+ConversationModelPimpl::slotContactModelUpdated(const QString& uri)
 {
-    // presence updated
-    if (!needsSorted) {
-        try {
-            auto& conversation = getConversationForPeerUri(uri, true).get();
-            invalidateModel();
-            emit linked.conversationUpdated(conversation.uid);
-            Q_EMIT linked.dataChanged(indexOf(conversation.uid));
-        } catch (std::out_of_range&) {
-            qDebug() << "contact updated for not existing conversation";
-        }
-        return;
+    try {
+        auto& conversation = getConversationForPeerUri(uri, true).get();
+        invalidateModel();
+        emit linked.conversationUpdated(conversation.uid);
+        Q_EMIT linked.dataChanged(indexOf(conversation.uid));
+    } catch (std::out_of_range&) {
+        qDebug() << "contact update attempted for inexistent conversation";
     }
 
     if (currentFilter.isEmpty()) {