diff --git a/src/resolvers/qtscriptresolver.cpp b/src/resolvers/qtscriptresolver.cpp
index 5e9694d97..296d4ea10 100644
--- a/src/resolvers/qtscriptresolver.cpp
+++ b/src/resolvers/qtscriptresolver.cpp
@@ -34,8 +34,8 @@ QtScriptResolverHelper::QtScriptResolverHelper( const QString& scriptPath, QObje
 }
 
 
-QString
-QtScriptResolverHelper::readFile( const QString& fileName )
+QByteArray
+QtScriptResolverHelper::readRaw( const QString& fileName )
 {
     QString path = QFileInfo( m_scriptPath ).absolutePath();
     // remove directories
@@ -45,7 +45,8 @@ QtScriptResolverHelper::readFile( const QString& fileName )
     QFile file( absoluteFilePath );
     if ( !file.exists() )
     {
-        return QString();
+        Q_ASSERT(false);
+        return QByteArray();
     }
 
     file.open( QIODevice::ReadOnly );
@@ -61,6 +62,20 @@ QtScriptResolverHelper::compress( const QString& data )
 }
 
 
+QString
+QtScriptResolverHelper::readCompressed(const QString& fileName)
+{
+    return compress( readRaw( fileName ) );
+}
+
+
+QString
+QtScriptResolverHelper::readBase64(const QString& fileName)
+{
+    return readRaw( fileName ).toBase64();
+}
+
+
 QVariantMap
 QtScriptResolverHelper::resolverData()
 {
@@ -224,18 +239,27 @@ QtScriptResolver::loadUi()
 
 
     bool compressed = m.value( "compressed", "false" ).toBool();
-    bool base64 = m.value( "base64", "false" ).toBool();
-
     qDebug() << "Resolver has a preferences widget! compressed?" << compressed << m;
 
     QByteArray uiData = m[ "widget" ].toByteArray();
-    if( base64 && compressed )
+
+    if( compressed )
         uiData = qUncompress( QByteArray::fromBase64( uiData ) );
-    else if( base64 )
+    else
         uiData = QByteArray::fromBase64( uiData );
 
+    QVariantMap images;
+    foreach(const QVariant& item, m[ "images" ].toList())
+    {
+        QString key = item.toMap().keys().first();
+        QVariant value = item.toMap().value(key);
+        images[key] = value;
+    }
+
     if( m.contains( "images" ) )
-        uiData = fixDataImagePaths( uiData, compressed, m[ "images" ].toMap() );
+        uiData = fixDataImagePaths( uiData, compressed, images );
+
+
 
     m_configWidget = QWeakPointer< QWidget >( widgetFromData( uiData, 0 ) );
 
diff --git a/src/resolvers/qtscriptresolver.h b/src/resolvers/qtscriptresolver.h
index 94994a954..f55f50433 100644
--- a/src/resolvers/qtscriptresolver.h
+++ b/src/resolvers/qtscriptresolver.h
@@ -42,7 +42,10 @@ public:
     void setResolverConfig( QVariantMap config );
 
 public slots:
-    QString readFile( const QString& fileName );
+    QByteArray readRaw( const QString& fileName );
+    QString readBase64( const QString& fileName );
+    QString readCompressed( const QString& fileName );
+
     QString compress( const QString& data );
     QVariantMap resolverData();