diff --git a/jami-android/libjamiclient/src/main/kotlin/net/jami/model/Account.kt b/jami-android/libjamiclient/src/main/kotlin/net/jami/model/Account.kt
index dc4bcc95657978957d80108df384c3ed985df433..765a1eb3e23edff0ea50d2108bbd05993a0e6214 100644
--- a/jami-android/libjamiclient/src/main/kotlin/net/jami/model/Account.kt
+++ b/jami-android/libjamiclient/src/main/kotlin/net/jami/model/Account.kt
@@ -95,7 +95,7 @@ class Account(
 
     fun isContact(uri: Uri): Boolean = getContact(uri) != null
 
-    fun conversationStarted(conversation: Conversation) {
+    fun conversationStarted(conversation: Conversation, newMode: Conversation.Mode? = null) {
         //Log.w(TAG, "conversationStarted ${conversation.accountId} ${conversation.uri} ${conversation.isSwarm} ${conversation.contacts.size} ${conversation.mode.blockingFirst()}")
         synchronized(conversations) {
             if (conversation.isSwarm) {
@@ -103,7 +103,11 @@ class Account(
                 swarmConversations[conversation.uri.rawRingId] = conversation
             }
             conversations[conversation.uri.uri] = conversation
-            if (conversation.isSwarm && conversation.mode.blockingFirst() === Conversation.Mode.OneToOne) {
+
+            if (newMode != null) conversation.setMode(newMode)
+
+            val mode = newMode ?: conversation.mode.blockingFirst()
+            if (conversation.isSwarm && mode === Conversation.Mode.OneToOne) {
                 try {
                     val contact = conversation.contact!!
                     val key = contact.uri.uri
diff --git a/jami-android/libjamiclient/src/main/kotlin/net/jami/services/AccountService.kt b/jami-android/libjamiclient/src/main/kotlin/net/jami/services/AccountService.kt
index 6a7a0c0e24299b6b548ef8d68ff86bea974a41e9..727f32144c6a585425d506a0e633d07df48a2d23 100644
--- a/jami-android/libjamiclient/src/main/kotlin/net/jami/services/AccountService.kt
+++ b/jami-android/libjamiclient/src/main/kotlin/net/jami/services/AccountService.kt
@@ -1448,10 +1448,8 @@ class AccountService(
             }
             if (!conversation.lastElementLoadedSubject.hasValue())
                 conversation.lastElementLoadedSubject.onSuccess(loadMore(conversation, 8).ignoreElement().cache())
-            if (setMode)
-                conversation.setMode(mode)
         }
-        account.conversationStarted(conversation)
+        account.conversationStarted(conversation, if (setMode) mode else null)
         loadMore(conversation, 2)
     }