diff --git a/src/api/pluginmodel.h b/src/api/pluginmodel.h
index 8cf5dbd51f994888cc8f74c1e0608933c19c80fc..f268a36d99fc96b3fc0c6c7cc03194bf2834a9ca 100644
--- a/src/api/pluginmodel.h
+++ b/src/api/pluginmodel.h
@@ -157,11 +157,20 @@ public:
     Q_INVOKABLE MapStringString getPluginPreferencesValues(const QString& path);
 
     /**
-     * Reste preferences values of installed plugin to default values
+     * Reset preferences values of installed plugin to default values
      * @return true if preference was succesfully reset
      */
     Q_INVOKABLE bool resetPluginPreferencesValues(const QString& path);
 
+    /**
+    * Add a possible value to a preference that can be edited by the user
+    * the only possibility at the moment is USERLIST option
+    * @return if addition was successfull
+    */
+    Q_INVOKABLE bool addValueToPreference(const QString& pluginId,
+                                          const QString& preferenceKey,
+                                          const QString& value);
+
 };
 
 } // namespace api
diff --git a/src/pluginmodel.cpp b/src/pluginmodel.cpp
index 11bd518aff82c74cbb9e4aa1aa9e9fc551e0c3ed..7bfed8418fce67f22ab1f78a8a48dde40a229305 100644
--- a/src/pluginmodel.cpp
+++ b/src/pluginmodel.cpp
@@ -191,6 +191,14 @@ PluginModel::resetPluginPreferencesValues(const QString& path)
     return PluginManager::instance().resetPluginPreferencesValues(path);
 }
 
+bool
+PluginModel::addValueToPreference(const QString& pluginId,
+    const QString& preferenceKey,
+    const QString& value)
+{
+    return PluginManager::instance().addValueToPreference(pluginId, preferenceKey, value);
+}
+
 } // namespace lrc
 
 #include "api/moc_pluginmodel.cpp"
diff --git a/src/qtwrapper/pluginmanager.cpp b/src/qtwrapper/pluginmanager.cpp
index 51ff960cb97c29643a72b73993f1ccaf49ad04f3..51b62084f2620ca63b827cb47a0df2b5c1f95b71 100644
--- a/src/qtwrapper/pluginmanager.cpp
+++ b/src/qtwrapper/pluginmanager.cpp
@@ -124,3 +124,13 @@ PluginManagerInterface::resetPluginPreferencesValues(const QString& path)
 {
     return DRing::resetPluginPreferencesValues(path.toStdString());
 }
+
+bool
+PluginManagerInterface::addValueToPreference(const QString& pluginId,
+                                           const QString& preferenceKey,
+                                           const QString& value)
+{
+    return DRing::addValueToPreference(pluginId.toStdString(),
+                                       preferenceKey.toStdString(),
+                                       value.toStdString());
+}
diff --git a/src/qtwrapper/pluginmanager_wrap.h b/src/qtwrapper/pluginmanager_wrap.h
index e0a755127983f888f45f7c39e97486e6e6ab14cd..f1ee3b8283ee108ced0a4c29fe307a493cb7b615 100644
--- a/src/qtwrapper/pluginmanager_wrap.h
+++ b/src/qtwrapper/pluginmanager_wrap.h
@@ -79,6 +79,10 @@ public Q_SLOTS: // METHODS
     MapStringString getPluginPreferencesValues(const QString& path);
 
     bool resetPluginPreferencesValues(const QString& path);
+
+    bool addValueToPreference(const QString& pluginId,
+                              const QString& preferenceKey,
+                              const QString& value);
 };
 
 namespace org {