diff --git a/browsertreedbusextension.cpp b/browsertreedbusextension.cpp
index 5018817ac0f737dc72fa42f847bff904c76722f7..5ea4c769030aaedf2bcf888adbeb4b8975580ab5 100644
--- a/browsertreedbusextension.cpp
+++ b/browsertreedbusextension.cpp
@@ -10,6 +10,7 @@
 #include <cumbiadbusplugin.h>
 #include <QDir>
 #include <QPluginLoader>
+#include <cupluginloader.h>
 
 BrowserTreeDBusExtension::BrowserTreeDBusExtension(BrowserTree *tree) : QObject(tree)
 {
@@ -163,19 +164,13 @@ AppInfo BrowserTreeDBusExtension::findApp(const QString& commandLine)
 
 void BrowserTreeDBusExtension::m_loadCumbiaPlugin()
 {
-    QDir pluginsDir(QUMBIA_PLUGIN_DIR);
-    // pluginsDir.cd("plugins");
-    foreach (QString fileName, pluginsDir.entryList(QDir::Files)) {
-        QPluginLoader pluginLoader(pluginsDir.absoluteFilePath(fileName));
-        QObject *plugin = pluginLoader.instance();
-        if (plugin) {
-            QuDBusPluginInterface *dpi = qobject_cast<QuDBusPluginInterface *>(plugin);
-            if(dpi)
-                m_qudbusctrl_i = dpi->getAppCtrlIface();
-        }
-        else
-            perr("BrowserTreeDBusExtension.m_loadCumbiaPlugin: error loading plugin: %s", qstoc(pluginLoader.errorString()));
-    }
+    CuPluginLoader pl;
+    QObject *plugin_o = nullptr;
+    QuDBusPluginInterface *dpi = pl.get<QuDBusPluginInterface>("libcumbia-dbus-plugin.so", &plugin_o);     // qobject_cast<QuDBusPluginInterface *>(plugin);
+    if(dpi)
+        m_qudbusctrl_i = dpi->getAppCtrlIface();
+    else
+        perr("BrowserTreeDBusExtension.m_loadCumbiaPlugin: error loading dbus plugin");
     if(m_qudbusctrl_i)
         printf("\e[1;32m* \e[0msuccessfully loaded the \e[1;32;4mcumbia dbus\e[0m plugin\n");
 }