diff --git a/src/app/currentconversation.cpp b/src/app/currentconversation.cpp
index a0f940dbe9abc17f6c7ea403c4edcb38ed2569ef..d662f8f45d8307d6b2319e030b939ffebbd7ac75 100644
--- a/src/app/currentconversation.cpp
+++ b/src/app/currentconversation.cpp
@@ -51,7 +51,6 @@ void
 CurrentConversation::updateData()
 {
     auto convId = lrcInstance_->get_selectedConvUid();
-    set_id(convId);
     if (convId.isEmpty())
         return;
     try {
@@ -133,6 +132,7 @@ CurrentConversation::updateData()
     } catch (...) {
         qWarning() << "Can't update current conversation data for" << convId;
     }
+    set_id(convId);
     updateErrors(convId);
 }
 
diff --git a/src/app/mainview/ConversationView.qml b/src/app/mainview/ConversationView.qml
index fc824082230532c5a18866e527c368bd76888edb..f96de59f97eda0231fd594157085ab36ae5b0146 100644
--- a/src/app/mainview/ConversationView.qml
+++ b/src/app/mainview/ConversationView.qml
@@ -80,6 +80,7 @@ BaseView {
                         Qt.callLater(focusChatView)
                     } else {
                         dismiss()
+                        callStackView.contentView.forceActiveFocus()
                     }
                 }
 
@@ -88,6 +89,17 @@ BaseView {
                         root.dismiss()
                     } else {
                         callStackView.chatViewContainer.visible = false
+                        callStackView.contentView.forceActiveFocus()
+                    }
+                }
+
+                onVisibleChanged: {
+                    if (!inCallView)
+                        return
+                    if (visible && !parent.showDetails) {
+                        focusChatView()
+                    } else {
+                        callStackView.contentView.forceActiveFocus()
                     }
                 }
             }
@@ -97,6 +109,13 @@ BaseView {
             id: callStackView
             Layout.fillWidth: true
             Layout.fillHeight: true
+
+            onVisibleChanged: {
+                if (visible)
+                    contentView.forceActiveFocus()
+                else
+                    chatView.focusChatView()
+            }
         }
     }
 }
diff --git a/src/app/mainview/components/CallStackView.qml b/src/app/mainview/components/CallStackView.qml
index c5b4419fe1793489c3b0254e18fc254304a2c19e..f867989c3f32122c7b17be322579017fc11c2fbc 100644
--- a/src/app/mainview/components/CallStackView.qml
+++ b/src/app/mainview/components/CallStackView.qml
@@ -30,6 +30,7 @@ Item {
     id: root
 
     property alias chatViewContainer: ongoingCallPage.chatViewContainer
+    property alias contentView: callStackMainView
 
     property var sipKeys: [
         "1", "2", "3", "A",