diff --git a/src/app/accountadapter.cpp b/src/app/accountadapter.cpp
index a6278c4dc18fd347993075ddeb13d9da6fbc3f21..e73c6103fd0e5d0f9759375a38b0a86521491a50 100644
--- a/src/app/accountadapter.cpp
+++ b/src/app/accountadapter.cpp
@@ -34,10 +34,12 @@ AccountAdapter::AccountAdapter(AppSettingsManager* settingsManager,
     , settingsManager_(settingsManager)
     , systemTray_(systemTray)
     , accountListModel_(new AccountListModel(instance))
-    , deviceItemListModel_(new DeviceItemListModel(instance))
+    , deviceItemListModel_(new DeviceItemListModel(instance, parent))
+    , moderatorListModel_(new ModeratorListModel(instance, parent))
 {
     QML_REGISTERSINGLETONTYPE_POBJECT(NS_MODELS, accountListModel_.get(), "AccountListModel");
     QML_REGISTERSINGLETONTYPE_POBJECT(NS_MODELS, deviceItemListModel_.get(), "DeviceItemListModel");
+    QML_REGISTERSINGLETONTYPE_POBJECT(NS_MODELS, moderatorListModel_.get(), "ModeratorListModel");
 
     connect(&lrcInstance_->accountModel(),
             &AccountModel::accountStatusChanged,
diff --git a/src/app/accountadapter.h b/src/app/accountadapter.h
index 326dda8e1390bb74edce98515511a635ab173263..7c5a29ab838be8cc9cf7644591baca84e45ea8cb 100644
--- a/src/app/accountadapter.h
+++ b/src/app/accountadapter.h
@@ -22,6 +22,7 @@
 
 #include "accountlistmodel.h"
 #include "deviceitemlistmodel.h"
+#include "moderatorlistmodel.h"
 #include "systemtray.h"
 #include "lrcinstance.h"
 #include "utils.h"
@@ -102,5 +103,6 @@ private:
 
     QScopedPointer<AccountListModel> accountListModel_;
     QScopedPointer<DeviceItemListModel> deviceItemListModel_;
+    QScopedPointer<ModeratorListModel> moderatorListModel_;
 };
 Q_DECLARE_METATYPE(AccountAdapter*)
diff --git a/src/app/moderatorlistmodel.cpp b/src/app/moderatorlistmodel.cpp
index 49dea9bfb8f0fd7dd7a17d86cc1d67a3126ecc6c..c7ec0aa7deb2874f07c31e2e6c0344f5c80b48bd 100644
--- a/src/app/moderatorlistmodel.cpp
+++ b/src/app/moderatorlistmodel.cpp
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2019-2023 Savoir-faire Linux Inc.
- * Author: Albert Babí Oller <albert.babi@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
@@ -20,9 +19,17 @@
 
 #include "lrcinstance.h"
 
-ModeratorListModel::ModeratorListModel(QObject* parent)
+ModeratorListModel::ModeratorListModel(LRCInstance* instance, QObject* parent)
     : AbstractListModelBase(parent)
-{}
+{
+    lrcInstance_ = instance;
+    connect(lrcInstance_,
+            &LRCInstance::currentAccountIdChanged,
+            this,
+            &ModeratorListModel::connectAccount,
+            Qt::UniqueConnection);
+    connectAccount();
+}
 
 ModeratorListModel::~ModeratorListModel() {}
 
@@ -52,7 +59,7 @@ ModeratorListModel::data(const QModelIndex& index, int role) const
 {
     try {
         QStringList list = lrcInstance_->accountModel().getDefaultModerators(
-                    lrcInstance_->get_currentAccountId());
+            lrcInstance_->get_currentAccountId());
         if (!index.isValid() || list.size() <= index.row()) {
             return QVariant();
         }
@@ -61,8 +68,8 @@ ModeratorListModel::data(const QModelIndex& index, int role) const
 
         switch (role) {
         case Role::ContactName: {
-            QString str = lrcInstance_->getCurrentAccountInfo().contactModel->
-                    bestNameForContact(list.at(index.row()));
+            QString str = lrcInstance_->getCurrentAccountInfo().contactModel->bestNameForContact(
+                list.at(index.row()));
             return QVariant(str);
         }
         case Role::ContactID:
@@ -120,3 +127,10 @@ ModeratorListModel::reset()
     beginResetModel();
     endResetModel();
 }
+
+void
+ModeratorListModel::connectAccount()
+{
+    if (!lrcInstance_->get_currentAccountId().isEmpty())
+        reset();
+}
\ No newline at end of file
diff --git a/src/app/moderatorlistmodel.h b/src/app/moderatorlistmodel.h
index 3ca37937539fb81042213a15c7e1ae25c4db82ee..e8b4232c7b70c47023eec15994d11bb017f8ba6a 100644
--- a/src/app/moderatorlistmodel.h
+++ b/src/app/moderatorlistmodel.h
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2019-2023 Savoir-faire Linux Inc.
- * Author: Albert Babí Oller <albert.babi@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
@@ -20,14 +19,14 @@
 
 #include "abstractlistmodelbase.h"
 
-class ModeratorListModel : public AbstractListModelBase
+class ModeratorListModel final : public AbstractListModelBase
 {
     Q_OBJECT
 public:
     enum Role { ContactName = Qt::UserRole + 1, ContactID };
     Q_ENUM(Role)
 
-    explicit ModeratorListModel(QObject* parent = nullptr);
+    explicit ModeratorListModel(LRCInstance* lrcInstance, QObject* parent = nullptr);
     ~ModeratorListModel();
 
     /*
@@ -48,4 +47,10 @@ public:
      * This function is to reset the model when there's new account added.
      */
     Q_INVOKABLE void reset();
+
+public Q_SLOTS:
+    void connectAccount();
+
+private:
+    LRCInstance* lrcInstance_;
 };
diff --git a/src/app/qmlregister.cpp b/src/app/qmlregister.cpp
index f3f9ffe97637db388b34100126730534ab180d93..8a9f68fb5247289d98bbf92732d4bab6514b7be6 100644
--- a/src/app/qmlregister.cpp
+++ b/src/app/qmlregister.cpp
@@ -165,7 +165,6 @@ registerTypes(QQmlEngine* engine,
 
     // QAbstractListModels
     QML_REGISTERTYPE(NS_MODELS, BannedListModel);
-    QML_REGISTERTYPE(NS_MODELS, ModeratorListModel);
     QML_REGISTERTYPE(NS_MODELS, MediaCodecListModel);
     QML_REGISTERTYPE(NS_MODELS, AudioDeviceModel);
     QML_REGISTERTYPE(NS_MODELS, AudioManagerListModel);
@@ -229,6 +228,7 @@ registerTypes(QQmlEngine* engine,
     QML_REGISTERUNCREATABLE(NS_ENUMS, NetworkManager)
     QML_REGISTERUNCREATABLE(NS_ENUMS, WizardViewStepModel)
     QML_REGISTERUNCREATABLE(NS_ENUMS, DeviceItemListModel)
+    QML_REGISTERUNCREATABLE(NS_ENUMS, ModeratorListModel)
     QML_REGISTERUNCREATABLE(NS_ENUMS, VideoInputDeviceModel)
     QML_REGISTERUNCREATABLE(NS_ENUMS, VideoFormatResolutionModel)
     QML_REGISTERUNCREATABLE(NS_ENUMS, VideoFormatFpsModel)
diff --git a/src/app/settingsview/components/CallSettingsPage.qml b/src/app/settingsview/components/CallSettingsPage.qml
index 436d6a2ba202f696c8b1bbcb3b49ee2e673812d0..9a8bfa51cd41cca87c6f9869e51b789f303092b0 100644
--- a/src/app/settingsview/components/CallSettingsPage.qml
+++ b/src/app/settingsview/components/CallSettingsPage.qml
@@ -276,11 +276,8 @@ SettingsPageBase {
                 Layout.preferredHeight: 160
                 spacing: JamiTheme.settingsListViewsSpacing
 
-                visible: model.rowCount() > 0
-
-                model: ModeratorListModel {
-                    lrcInstance: LRCInstance
-                }
+                visible: count > 0
+                model: ModeratorListModel
 
                 delegate: ContactItemDelegate {
                     id: moderatorListDelegate