diff --git a/src/resolversmodel.cpp b/src/resolversmodel.cpp
index cae4b9e69..fa1c93cb0 100644
--- a/src/resolversmodel.cpp
+++ b/src/resolversmodel.cpp
@@ -28,7 +28,6 @@
 
 #include "utils/logger.h"
 
-
 ResolversModel::ResolversModel( QObject* parent )
     : QAbstractListModel( parent )
 {
@@ -135,6 +134,11 @@ ResolversModel::addResolver( const QString& resolver, bool enable )
     Tomahawk::ExternalResolver* res = Tomahawk::Pipeline::instance()->addScriptResolver( resolver, enable );
     connect( res, SIGNAL( changed() ), this, SLOT( resolverChanged() ) );
     endInsertRows();
+
+    if ( res->configUI() )
+        emit openConfig( res->filePath() );
+    else
+        m_waitingForLoad << resolver;
 }
 
 void
@@ -177,6 +181,12 @@ ResolversModel::resolverChanged()
         qDebug() << "Got resolverChanged signal, does it have a config UI yet?" << res->configUI();
         const QModelIndex idx = index( Tomahawk::Pipeline::instance()->scriptResolvers().indexOf( res ), 0, QModelIndex() );
         emit dataChanged( idx, idx );
+
+        if ( m_waitingForLoad.contains( res->filePath() ) )
+        {
+            m_waitingForLoad.remove( res->filePath() );
+            emit openConfig( res->filePath() );
+        }
     }
 }
 
diff --git a/src/resolversmodel.h b/src/resolversmodel.h
index 167320bca..9aee76f72 100644
--- a/src/resolversmodel.h
+++ b/src/resolversmodel.h
@@ -22,7 +22,7 @@
 
 #include <QModelIndex>
 #include <QStringList>
-
+#include <QSet>
 
 class ResolversModel : public QAbstractListModel
 {
@@ -49,11 +49,16 @@ public:
     void removeResolver( const QString& resolver );
 
     void saveScriptResolvers();
+
+signals:
+    void openConfig( const QString& filePath );
+
 private slots:
     void resolverChanged();
 
 private:
     void addInstalledResolvers();
+    QSet<QString> m_waitingForLoad;
 };
 
 #endif // RESOLVERSMODEL_H
diff --git a/src/settingsdialog.cpp b/src/settingsdialog.cpp
index 14be34bf8..24a99488f 100644
--- a/src/settingsdialog.cpp
+++ b/src/settingsdialog.cpp
@@ -200,6 +200,7 @@ SettingsDialog::SettingsDialog( QWidget *parent )
     m_resolversModel = new ResolversModel( this );
     ui->scriptList->setModel( m_resolversModel );
     ui->scriptList->setVerticalScrollMode( QAbstractItemView::ScrollPerPixel );
+    connect( m_resolversModel, SIGNAL( openConfig( QString ) ), SLOT( openResolverConfig( QString ) ) );
 
 #ifdef LIBATTICA_FOUND
     connect( ui->getMoreResolvers, SIGNAL( clicked() ), this, SLOT( getMoreResolvers() ) );