diff --git a/src/client/plugin_manager_interface.cpp b/src/client/plugin_manager_interface.cpp
index 3e28ac6ca18f6529375ae2c91cc8e49e6d94b1a9..b2073d996c6234be3f7fc9235c65cf100c5da779 100644
--- a/src/client/plugin_manager_interface.cpp
+++ b/src/client/plugin_manager_interface.cpp
@@ -28,13 +28,21 @@ namespace DRing {
 bool
 loadPlugin(const std::string& path)
 {
-    return jami::Manager::instance().getJamiPluginManager().loadPlugin(path);
+    bool status = jami::Manager::instance().getJamiPluginManager().loadPlugin(path);
+
+    jami::Manager::instance().pluginPreferences.saveStateLoadedPlugins(path, status);
+    jami::Manager::instance().saveConfig();
+    return status;
 }
 
 bool
 unloadPlugin(const std::string& path)
 {
-    return jami::Manager::instance().getJamiPluginManager().unloadPlugin(path);
+    bool status = jami::Manager::instance().getJamiPluginManager().unloadPlugin(path);
+
+    jami::Manager::instance().pluginPreferences.saveStateLoadedPlugins(path, false);
+    jami::Manager::instance().saveConfig();
+    return status;
 }
 
 void
diff --git a/src/plugin/jamipluginmanager.cpp b/src/plugin/jamipluginmanager.cpp
index 7e8db542b6028decd00ccc57074d7fc743171b78..8c2e07ad5526f8f27e6afbae3a61a370916d5877 100644
--- a/src/plugin/jamipluginmanager.cpp
+++ b/src/plugin/jamipluginmanager.cpp
@@ -302,8 +302,6 @@ JamiPluginManager::loadPlugin(const std::string& rootPath)
         bool status = pm_.load(getPluginDetails(rootPath).at("soPath"));
         JAMI_INFO() << "PLUGIN: load status - " << status;
 
-        jami::Manager::instance().pluginPreferences.saveStateLoadedPlugins(rootPath, status);
-        jami::Manager::instance().saveConfig();
         return status;
 
     } catch (const std::exception& e) {
@@ -322,9 +320,6 @@ JamiPluginManager::unloadPlugin(const std::string& rootPath)
         bool status = pm_.unload(getPluginDetails(rootPath).at("soPath"));
         JAMI_INFO() << "PLUGIN: unload status - " << status;
 
-        jami::Manager::instance().pluginPreferences.saveStateLoadedPlugins(rootPath, false);
-        jami::Manager::instance().saveConfig();
-
         return status;
     } catch (const std::exception& e) {
         JAMI_ERR() << e.what();