diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/Extended.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/Extended.qml
index ad568ffd0ae1ee180a53122b038e3063f5a04b7d..fc12c8a7ba99a63145c690e69457c420e225035a 100644
--- a/share/qtcreator/qmldesigner/propertyeditor/Qt/Extended.qml
+++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/Extended.qml
@@ -11,8 +11,8 @@ layout: QVBoxLayout {
     leftMargin: 10;
     rightMargin: 10;
 
-    property var effect: backendValues == null || backendValues.effect === undefined ? null : backendValues.effect
-    property var complexNode : effect === null ? null : effect.complexNode
+    property var effect: backendValues.effect
+    property var complexNode: effect.complexNode
 
     QWidget  {
         maximumHeight: 40;
@@ -23,7 +23,7 @@ layout: QVBoxLayout {
              }
              QComboBox {
                  enabled: isBaseState;
-                 property var type: complexNode == null ? null : complexNode.type
+                 property var type: backendValues.effect.complexNode.type
                  property var dirty;
                  id: effectComboBox;
                  items : { [
@@ -35,21 +35,29 @@ layout: QVBoxLayout {
                  ] }
 
                  onCurrentTextChanged: {
+				      
+					  print("currentTextChanged before dirty");
+					  
                       if (dirty) //avoid recursion;
                          return;
-                      if (complexNode != null && complexNode.exists)
-                             complexNode.remove();
+						 
+						 print("currentTextChanged");
+						 
+                      if (backendValues.effect.complexNode.exists)
+                             backendValues.effect.complexNode.remove();
                      if (currentText == "None") {
+					     print("none");
                          ;
-                     } else if (complexNode != null) {
-                         complexNode.add("Qt/" + currentText);
+                     } else if (backendValues.effect.complexNode != null) {
+					     print("add");
+                         backendValues.effect.complexNode.add("Qt/" + currentText);
                      }
                  }
 
                  onTypeChanged: {
                      dirty = true;
-                     if (complexNode != null && complexNode.type != "")
-                         currentText = complexNode.type;
+                     if (backendValues.effect.complexNode.exists)
+                         currentText = backendValues.effect.complexNode.type;
                      else
                          currentText = "None";
                      dirty = false;
@@ -70,7 +78,7 @@ layout: QVBoxLayout {
               topMargin: 12;
               IntEditor {
                 id: blurRadius;
-                backendValue: properties == null ? null : properties.blurRadius;
+                backendValue: backendValues.effect.complexNode.exists ? backendValues.effect.complexNode.properties.blurRadius : 0;
                 caption: "Blur Radius:"
                 baseStateFlag: isBaseState;
 
@@ -87,7 +95,7 @@ layout: QVBoxLayout {
                 DoubleSpinBox {
                                   id: OpcacityEffectSpinBox;
                                   objectName: "OpcacityEffectSpinBox";
-                                  backendValue: properties == null ? null : properties.opacity;
+                                  backendValue: backendValues.effect.complexNode.exists ? backendValues.effect.complexNode.properties.opacity : 0;
                                   minimum: 0;
                                   maximum: 1;
 								  singleStep: 0.1;
@@ -122,7 +130,7 @@ layout: QVBoxLayout {
               topMargin: 12;
               IntEditor {
                 id: pixelSize;
-                backendValue: properties == null ? null : properties.pixelSize;
+                backendValue: backendValues.effect.complexNode.exists ? backendValues.effect.complexNode.properties.pixelSize : 0;
                 caption: "Pixel Size:"
                 baseStateFlag: isBaseState;
 
@@ -140,7 +148,7 @@ layout: QVBoxLayout {
            topMargin: 12;
               IntEditor {
                 id: blurRadiusShadow;
-                backendValue: properties == null ? null : properties.blurRadius;
+                backendValue: backendValues.effect.complexNode.exists ? backendValues.effect.complexNode.properties.blurRadius : 0
                 caption: "Blur Radius:"
                 baseStateFlag: isBaseState;
 
@@ -164,7 +172,7 @@ layout: QVBoxLayout {
 
               IntEditor {
                 id: xOffset;
-                backendValue: properties == null ? 0 : properties.xOffset;
+                backendValue: backendValues.effect.complexNode.exists ? backendValues.effect.complexNode.properties.xOffset : 0
                 caption: "x Offset:     "
                 baseStateFlag: isBaseState;
 
@@ -175,7 +183,7 @@ layout: QVBoxLayout {
 
             IntEditor {
                 id: yOffset;
-                backendValue: properties == null ? 0 : properties.yOffset;
+                backendValue: backendValues.effect.complexNode.exists ? backendValues.effect.complexNode.properties.yOffset : 0
                 caption: "y Offset:     "
                 baseStateFlag: isBaseState;
 
diff --git a/src/plugins/qmldesigner/components/resources/scrollbar.css b/src/plugins/qmldesigner/components/resources/scrollbar.css
index a540b67b71faec0108367568600f844997e28624..e4f8ac89c2c7c103c6db9102b1080b43521f569e 100644
--- a/src/plugins/qmldesigner/components/resources/scrollbar.css
+++ b/src/plugins/qmldesigner/components/resources/scrollbar.css
@@ -6,10 +6,9 @@
   }
 
   QScrollBar::handle:vertical {
-      background: qlineargradient(x1: 0, y1: 0, x2: 0.5, y2: 0, x3: 0.8, y3: 0,
+      background: qlineargradient(x1: 0, y1: 0, x2: 0.5, y2: 0
                                        stop: 0 #cEcEcE,
-                                       stop: 1 #8E8E8E,
-                                       stop: 2 #101010);
+                                       stop: 1 #8E8E8E);
       min-height: 20px;
       border-radius: 10px;	  
   }
diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp
index 66250b050774b150e858b54ede6006872d6e0d53..c8760ae93ae7a6136488904ebcd5468615ba4a2c 100644
--- a/src/plugins/qt4projectmanager/qmakestep.cpp
+++ b/src/plugins/qt4projectmanager/qmakestep.cpp
@@ -210,8 +210,13 @@ bool QMakeStep::processFinished(int exitCode, QProcess::ExitStatus status)
 
 void QMakeStep::setUserArguments(const QStringList &arguments)
 {
+    if (m_userArgs == arguments)
+        return;
     m_userArgs = arguments;
+
     emit userArgumentsChanged();
+
+    qt4BuildConfiguration()->emitQMakeBuildConfigurationChanged();
 }
 
 QStringList QMakeStep::userArguments()
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemosshconnection.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemosshconnection.cpp
index 1ad9d2b8681252fd19b6420cccd8db37e16d9e18..3b7151f1e9cea34eecd5e64e25ee82f218cefddb 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemosshconnection.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemosshconnection.cpp
@@ -132,9 +132,11 @@ void MaemoInteractiveSshConnection::runCommand(const QString &command)
         const char * const error = lastError();
         if (error)
             throw MaemoSshException(tr("SSH error: %1").arg(error));
-        const char * output = ssh.readAndReset(channel(), alloc);
+        const char * const output = ssh.readAndReset(channel(), alloc);
         if (output) {
             emit remoteOutput(QString::fromUtf8(output));
+            if (!done)
+                done = strstr(output, m_prompt) != 0;
             delete[] output;
         }
     } while (!done && !stopRequested());
diff --git a/src/plugins/qt4projectmanager/qt-maemo/qt-maemo.pri b/src/plugins/qt4projectmanager/qt-maemo/qt-maemo.pri
index 13fb853cf1ced270e0d5252513aa354f0293af81..6b2db8cfc52b1ce62ba810e8cfaed5005f72d6ad 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/qt-maemo.pri
+++ b/src/plugins/qt4projectmanager/qt-maemo/qt-maemo.pri
@@ -6,7 +6,6 @@ SUPPORT_QT_MAEMO = $$(QTCREATOR_WITH_MAEMO)
 #    INCLUDEPATH += $$PWD/../../../libs/3rdparty/net7ssh/src
 #    INCLUDEPATH += $$PWD/../../../libs/3rdparty/botan/build
 #    LIBS += -l$$qtLibraryTarget(Net7ssh) -l$$qtLibraryTarget(Botan)
-
     HEADERS += $$PWD/maemorunconfiguration.h \
         $$PWD/maemomanager.h \
         $$PWD/maemotoolchain.h \
diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
index bc44dc52fea50955935c4e5e97727d9697a15169..fa86f4bab4326cb8047bcd1fb7cc5f66ae08936f 100644
--- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
@@ -316,6 +316,11 @@ void Qt4BuildConfiguration::setQMakeBuildConfiguration(QtVersion::QmakeBuildConf
     emit targetInformationChanged();
 }
 
+void Qt4BuildConfiguration::emitQMakeBuildConfigurationChanged()
+{
+    emit qmakeBuildConfigurationChanged();
+}
+
 void Qt4BuildConfiguration::getConfigCommandLineArguments(QStringList *addedUserConfigs, QStringList *removedUserConfigs) const
 {
     QtVersion::QmakeBuildConfigs defaultBuildConfiguration = qtVersion()->defaultBuildConfig();
diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.h b/src/plugins/qt4projectmanager/qt4buildconfiguration.h
index 146195f783f6b09ca4747d68e98b7d4a6dc5365e..1c6512899750792d2528e01961c544492300bf9d 100644
--- a/src/plugins/qt4projectmanager/qt4buildconfiguration.h
+++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.h
@@ -90,6 +90,9 @@ public:
 
     QtVersion::QmakeBuildConfigs qmakeBuildConfiguration() const;
     void setQMakeBuildConfiguration(QtVersion::QmakeBuildConfigs config);
+    // used by qmake step to notify that the qmake args have changed
+    // not really nice
+    void emitQMakeBuildConfigurationChanged();
     void getConfigCommandLineArguments(QStringList *addedUserConfigs, QStringList *removedUserConfigs) const;
 
     // Those functions are used in a few places.