diff --git a/src/app/pluginlistmodel.cpp b/src/app/pluginlistmodel.cpp
index 46f25caee72205234f0268b8b5798652ad15ba7a..a63ffb4a6c54fb979224916a98f75dde05b06fa4 100644
--- a/src/app/pluginlistmodel.cpp
+++ b/src/app/pluginlistmodel.cpp
@@ -80,6 +80,8 @@ PluginListModel::data(const QModelIndex& index, int role) const
         return QVariant(pluginStatus_.value(installedPlugins_.at(index.row())));
     case Role::NewPluginAvailable:
         return QVariant(newVersionAvailable_.value(installedPlugins_.at(index.row())));
+    case Role::Id:
+        return QVariant(details.id);
     }
     return QVariant();
 }
@@ -98,6 +100,7 @@ PluginListModel::roleNames() const
     roles[Status] = "Status";
     roles[PluginDescription] = "PluginDescription";
     roles[NewPluginAvailable] = "NewPluginAvailable";
+    roles[Id] = "Id";
     return roles;
 }
 
diff --git a/src/app/pluginlistmodel.h b/src/app/pluginlistmodel.h
index 9605b3004342b2f738542a4b0e6172c2d355b490..8bf2a07760bde15fa58404042307fc1bc9f9659f 100644
--- a/src/app/pluginlistmodel.h
+++ b/src/app/pluginlistmodel.h
@@ -38,7 +38,8 @@ public:
         PluginIcon,
         NewPluginAvailable,
         IsLoaded,
-        Status
+        Status,
+        Id
     };
     Q_ENUM(Role)
 
diff --git a/src/app/pluginstorelistmodel.cpp b/src/app/pluginstorelistmodel.cpp
index dc7c7bac301728c9aed889918695c1d32f0caade..3a9c08a5e522fd6de858473fe10567f96dff8dcc 100644
--- a/src/app/pluginstorelistmodel.cpp
+++ b/src/app/pluginstorelistmodel.cpp
@@ -79,7 +79,6 @@ void
 PluginStoreListModel::reset()
 {
     beginResetModel();
-    plugins_.clear();
     endResetModel();
 }
 
@@ -88,8 +87,8 @@ PluginStoreListModel::addPlugin(const QVariantMap& plugin)
 {
     beginInsertRows(QModelIndex(), plugins_.size(), plugins_.size());
     plugins_.append(plugin);
-    endInsertRows();
     sort();
+    endInsertRows();
 }
 
 void
@@ -97,8 +96,8 @@ PluginStoreListModel::setPlugins(const QList<QVariantMap>& plugins)
 {
     beginResetModel();
     plugins_ = filterPlugins(plugins);
-    endResetModel();
     sort();
+    endResetModel();
 }
 
 void
@@ -109,12 +108,12 @@ PluginStoreListModel::removePlugin(const QString& pluginId)
         if (plugin["id"].toString() == pluginId) {
             beginRemoveRows(QModelIndex(), index, index);
             plugins_.removeAt(index);
+            sort();
             endRemoveRows();
             return;
         }
         index++;
     }
-    sort();
 }
 
 void
@@ -129,7 +128,6 @@ PluginStoreListModel::updatePlugin(const QVariantMap& plugin)
         }
         index++;
     }
-    sort();
 }
 
 QColor
@@ -221,11 +219,9 @@ PluginStoreListModel::rowFromPluginId(const QString& pluginId) const
 void
 PluginStoreListModel::sort()
 {
-    beginResetModel();
     std::sort(plugins_.begin(), plugins_.end(), [](const QVariantMap& a, const QVariantMap& b) {
         return a["timestamp"].toString() < b["timestamp"].toString();
     });
-    endResetModel();
 }
 
 QList<QVariantMap>
diff --git a/src/app/pluginversionmanager.cpp b/src/app/pluginversionmanager.cpp
index 04c850d3f57b2b61618effdd03a162e0573d08d9..6f2c11d5233458f2fd116a5efb1aca976e239bd2 100644
--- a/src/app/pluginversionmanager.cpp
+++ b/src/app/pluginversionmanager.cpp
@@ -109,7 +109,7 @@ public:
                                    // `data` represents the version in this case.
                                    if (plugin.version < data) {
                                        if (isAutoUpdaterEnabled()) {
-                                           installRemotePlugin(plugin.name);
+                                           installRemotePlugin(plugin.id);
                                            return;
                                        }
                                    }
diff --git a/src/app/settingsview/components/PluginPreferencesView.qml b/src/app/settingsview/components/PluginPreferencesView.qml
index 35b185b502c725a6f9c78a7b85567fc9c5b6bc00..79d8163ec132ddbd1c830f4e82feb106f9e55bc5 100644
--- a/src/app/settingsview/components/PluginPreferencesView.qml
+++ b/src/app/settingsview/components/PluginPreferencesView.qml
@@ -289,9 +289,10 @@ Item {
                                 "buttonTitles": [JamiStrings.optionOk, JamiStrings.optionCancel],
                                 "buttonStyles": [SimpleMessageDialog.ButtonStyle.TintedBlue, SimpleMessageDialog.ButtonStyle.TintedBlack],
                                 "buttonCallBacks": [function () {
-                                        PluginListModel.setVersionStatus(PluginName, PluginStatus.INSTALLABLE);
+                                        PluginListModel.setVersionStatus(Id, PluginStatus.INSTALLABLE);
                                         PluginModel.uninstallPlugin(PluginId);
                                         PluginListModel.removePlugin(index);
+                                        PluginAdapter.getPluginsFromStore();
                                         // could not call root from here
                                         settings.ListView.view.parent.closed();
                                     }]