diff --git a/qml.qrc b/qml.qrc
index 3cc7099..b60c092 100644
--- a/qml.qrc
+++ b/qml.qrc
@@ -105,5 +105,6 @@
         <file>src/mainview/components/SipInputPanel.qml</file>
         <file>src/commoncomponents/js/contextmenugenerator.js</file>
         <file>src/commoncomponents/BaseContextMenu.qml</file>
+        <file>src/mainview/components/AccountPresenceCycle.qml</file>
     </qresource>
 </RCC>
diff --git a/src/mainview/MainView.qml b/src/mainview/MainView.qml
index 315e3ed..48b3e1e 100644
--- a/src/mainview/MainView.qml
+++ b/src/mainview/MainView.qml
@@ -304,7 +304,7 @@
                         }
 
                         function onAccountStatusChanged() {
-                            accountComboBox.updateAccountListModel()
+                            accountComboBox.resetAccountListModel()
                         }
                     }
 
diff --git a/src/mainview/components/AccountComboBox.qml b/src/mainview/components/AccountComboBox.qml
index 6037d43..0fd3fa8 100644
--- a/src/mainview/components/AccountComboBox.qml
+++ b/src/mainview/components/AccountComboBox.qml
@@ -1,4 +1,3 @@
-
 /*
  * Copyright (C) 2020 by Savoir-faire Linux
  * Author: Mingrui Zhang <mingrui.zhang@savoirfairelinux.com>
@@ -16,6 +15,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
  */
+
 import QtQuick 2.14
 import QtQuick.Controls 2.14
 import QtQuick.Layouts 1.14
@@ -37,13 +37,6 @@
         needToBackToWelcomePage()
     }
 
-    // Refresh every item in accountListModel.
-    function updateAccountListModel() {
-        accountListModel.dataChanged(accountListModel.index(0, 0),
-                                     accountListModel.index(
-                                         accountListModel.rowCount() - 1, 0))
-    }
-
     // Reset accountListModel.
     function resetAccountListModel() {
         accountListModel.reset()
@@ -72,41 +65,24 @@
         }
         mipmap: true
 
-        Rectangle {
-            id: presenseRect
+        AccountPresenceCycle {
+            id: currentAccountPresenseCycle
 
             anchors.right: userImageRoot.right
             anchors.rightMargin: -2
             anchors.bottom: userImageRoot.bottom
             anchors.bottomMargin: -2
 
-            width: 12
-            height: 12
-
-            // Visible when account is registered, enum REGISTERED == 5.
+            // Visible when account is registered.
             visible: {
                 if (currentIndex !== -1)
                     return accountListModel.data(
                                 accountListModel.index(
-                                    accountComboBox.currentIndex, 0), 261) === 5
+                                    accountComboBox.currentIndex, 0), 261)
+                            === Account.Status.REGISTERED
                 else
                     return visible
             }
-
-            Rectangle {
-                id: presenseCycle
-
-                anchors.centerIn: presenseRect
-
-                width: 10
-                height: 10
-
-                radius: 30
-                color: JamiTheme.presenceGreen
-            }
-
-            radius: 30
-            color: JamiTheme.backgroundColor
         }
     }
 
diff --git a/src/mainview/components/AccountComboBoxPopup.qml b/src/mainview/components/AccountComboBoxPopup.qml
index 2e3120d..813cb8e 100644
--- a/src/mainview/components/AccountComboBoxPopup.qml
+++ b/src/mainview/components/AccountComboBoxPopup.qml
@@ -57,7 +57,6 @@
         model: accountListModel
         implicitHeight: contentHeight
         delegate: ItemDelegate {
-
             Image {
                 id: userImage
 
@@ -66,7 +65,7 @@
                 anchors.verticalCenter: parent.verticalCenter
 
                 width: 30
-                height: parent.height
+                height: 30
 
                 fillMode: Image.PreserveAspectFit
                 mipmap: true
@@ -81,6 +80,22 @@
                     }
                     return "data:image/png;base64," + data
                 }
+
+                AccountPresenceCycle {
+                    id: accountPresenseCycle
+
+                    anchors.right: userImage.right
+                    anchors.rightMargin: -2
+                    anchors.bottom: userImage.bottom
+                    anchors.bottomMargin: -2
+
+                    // Visible when account is registered.
+                    visible: {
+                        return accountListModel.data(
+                                    accountListModel.index(index, 0), 261)
+                                === Account.Status.REGISTERED
+                    }
+                }
             }
 
             Text {
diff --git a/src/mainview/components/AccountPresenceCycle.qml b/src/mainview/components/AccountPresenceCycle.qml
new file mode 100644
index 0000000..9eb4458
--- /dev/null
+++ b/src/mainview/components/AccountPresenceCycle.qml
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2020 by Savoir-faire Linux
+ * Author: Mingrui Zhang <mingrui.zhang@savoirfairelinux.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ */
+
+import QtQuick 2.14
+import QtQuick.Controls 2.14
+import net.jami.Models 1.0
+
+Rectangle {
+    id: root
+
+    width: 12
+    height: 12
+
+    Rectangle {
+        id: presenceCycle
+
+        anchors.centerIn: root
+
+        width: 10
+        height: 10
+
+        radius: 30
+        color: JamiTheme.presenceGreen
+    }
+
+    radius: 30
+    color: JamiTheme.backgroundColor
+}
diff --git a/src/mainview/components/ConversationSmartListUserImage.qml b/src/mainview/components/ConversationSmartListUserImage.qml
index 6f3600b..e8034fd 100644
--- a/src/mainview/components/ConversationSmartListUserImage.qml
+++ b/src/mainview/components/ConversationSmartListUserImage.qml
@@ -31,33 +31,14 @@
     source: "data:image/png;base64," + Picture
     mipmap: true
 
-    Rectangle {
-        id: presenseRect
+    AccountPresenceCycle {
+        id: conversationAccountPresenseCycle
 
         anchors.right: userImage.right
-        anchors.rightMargin: -2
         anchors.bottom: userImage.bottom
         anchors.bottomMargin: -2
 
-        width: 14
-        height: 14
-
         visible: Presence
-
-        Rectangle {
-            id: presenseCycle
-
-            anchors.centerIn: presenseRect
-
-            width: 10
-            height: 10
-
-            radius: 30
-            color: JamiTheme.presenceGreen
-        }
-
-        radius: 30
-        color: JamiTheme.backgroundColor
     }
 
     Rectangle {
