diff --git a/src/mainview/components/AccountComboBox.qml b/src/mainview/components/AccountComboBox.qml
index 0fd3fa8..3580951 100644
--- a/src/mainview/components/AccountComboBox.qml
+++ b/src/mainview/components/AccountComboBox.qml
@@ -31,8 +31,6 @@
     signal newAccountButtonClicked
     signal settingBtnClicked
 
-    currentIndex: 0
-
     function backToWelcomePage() {
         needToBackToWelcomePage()
     }
@@ -42,6 +40,19 @@
         accountListModel.reset()
     }
 
+    Connections {
+        target: accountListModel
+
+        function onModelReset() {
+            userImageRoot.source = "data:image/png;base64," + accountListModel.data(
+                        accountListModel.index(0, 0), 259)
+            currentAccountPresenseCycle.accountStatus =
+                    accountListModel.data(accountListModel.index(0, 0), 261)
+            textMetricsUserAliasRoot.text = accountListModel.data(accountListModel.index(0,0), 257)
+            textMetricsUsernameRoot.text = accountListModel.data(accountListModel.index(0,0), 258)
+        }
+    }
+
     Image {
         id: userImageRoot
 
@@ -55,14 +66,8 @@
         fillMode: Image.PreserveAspectFit
 
         // Base 64 format
-        source: {
-            if (currentIndex !== -1)
-                return "data:image/png;base64," + accountListModel.data(
-                            accountListModel.index(
-                                accountComboBox.currentIndex, 0), 259)
-            else
-                return source
-        }
+        source: "data:image/png;base64," + accountListModel.data(
+                            accountListModel.index(0, 0), 259)
         mipmap: true
 
         AccountPresenceCycle {
@@ -73,16 +78,7 @@
             anchors.bottom: userImageRoot.bottom
             anchors.bottomMargin: -2
 
-            // Visible when account is registered.
-            visible: {
-                if (currentIndex !== -1)
-                    return accountListModel.data(
-                                accountListModel.index(
-                                    accountComboBox.currentIndex, 0), 261)
-                            === Account.Status.REGISTERED
-                else
-                    return visible
-            }
+            accountStatus: accountListModel.data(accountListModel.index(0, 0), 261)
         }
     }
 
@@ -133,14 +129,7 @@
                     - arrowDropDown.width - qrCodeGenerateButton.width - 55
 
         // Role::Alias
-        text: {
-            if (currentIndex !== -1)
-                return accountListModel.data(accountListModel.index(
-                                                 accountComboBox.currentIndex,
-                                                 0), 257)
-            else
-                return text
-        }
+        text: accountListModel.data(accountListModel.index(0,0), 257)
     }
 
     TextMetrics {
@@ -154,14 +143,7 @@
 
 
         // Role::Username
-        text: {
-            if (currentIndex !== -1)
-                return accountListModel.data(accountListModel.index(
-                                                 accountComboBox.currentIndex,
-                                                 0), 258)
-            else
-                return text
-        }
+        text: accountListModel.data(accountListModel.index(0,0), 258)
     }
 
     HoverableButton {
diff --git a/src/mainview/components/AccountComboBoxPopup.qml b/src/mainview/components/AccountComboBoxPopup.qml
index 813cb8e..f10b4f5 100644
--- a/src/mainview/components/AccountComboBoxPopup.qml
+++ b/src/mainview/components/AccountComboBoxPopup.qml
@@ -89,12 +89,7 @@
                     anchors.bottom: userImage.bottom
                     anchors.bottomMargin: -2
 
-                    // Visible when account is registered.
-                    visible: {
-                        return accountListModel.data(
-                                    accountListModel.index(index, 0), 261)
-                                === Account.Status.REGISTERED
-                    }
+                    accountStatus: Status
                 }
             }
 
diff --git a/src/mainview/components/AccountPresenceCycle.qml b/src/mainview/components/AccountPresenceCycle.qml
index 9eb4458..7883677 100644
--- a/src/mainview/components/AccountPresenceCycle.qml
+++ b/src/mainview/components/AccountPresenceCycle.qml
@@ -23,6 +23,8 @@
 Rectangle {
     id: root
 
+    property int accountStatus: 5
+
     width: 12
     height: 12
 
@@ -35,7 +37,13 @@
         height: 10
 
         radius: 30
-        color: JamiTheme.presenceGreen
+        color: {
+            if (accountStatus === Account.Status.REGISTERED)
+                return JamiTheme.presenceGreen
+            else if (accountStatus === Account.Status.TRYING)
+                return JamiTheme.unPresenceOrange
+            return JamiTheme.notificationRed
+        }
     }
 
     radius: 30
diff --git a/src/mainview/components/SidePanel.qml b/src/mainview/components/SidePanel.qml
index 350244e..01d13b5 100644
--- a/src/mainview/components/SidePanel.qml
+++ b/src/mainview/components/SidePanel.qml
@@ -77,30 +77,9 @@
         sidePanelTabBar.invitationTabDown = false
     }
 
-    function needToChangeToAccount(accountId, index) {
-        if (index !== -1) {
-            accountComboBox.currentIndex = index
-            ClientWrapper.accountAdaptor.accountChanged(index)
-            accountChangedUIReset()
-        }
-    }
+    function refreshAccountComboBox(index) {
+        ClientWrapper.accountAdaptor.accountChanged(index)
 
-    function refreshAccountComboBox(index = -1) {
-
-
-        /*
-         * To make sure that the ui is refreshed for accountComboBox.
-         * Note: when index in -1, it means to maintain the
-         *       current account selection.
-         */
-        var currentIndex = accountComboBox.currentIndex
-        if (accountComboBox.currentIndex === index)
-            accountComboBox.currentIndex = -1
-        accountComboBox.currentIndex = index
-        if (index !== -1)
-            ClientWrapper.accountAdaptor.accountChanged(index)
-        else
-            accountComboBox.currentIndex = currentIndex
         accountComboBox.update()
         accountChangedUIReset()
         accountComboBox.resetAccountListModel()
