diff --git a/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.h b/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.h
index 13488707743a8361ba5ecd40c44c38d8c3b0f15c..1bd15739dd0ba45ee286daec1dd694a91554fe9a 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.h
+++ b/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.h
@@ -96,6 +96,8 @@ public:
     QStringList packageTemplateFileNames() const;
     QStringList appPackageTemplateFileNames() const;
 
+    bool runSmartInstaller() const;
+
     QVariantMap toMap() const;
 
 signals:
@@ -116,7 +118,6 @@ protected:
 
 private:
     void ctor();
-    bool runSmartInstaller() const;
     bool isSigned() const;
     QString symbianPlatform() const;
     QString symbianTarget() const;
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
index f873bab9957d8dda991bf4740903b9875d8b11f6..d557b1370793d9b082b5d43fc34d6a1c78da8ade 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
@@ -545,6 +545,7 @@ S60DeviceRunControl::S60DeviceRunControl(RunConfiguration *runConfiguration, QSt
         m_qtBinPath = qtv->versionInfo().value(QLatin1String("QT_INSTALL_BINS"));
     QTC_ASSERT(!m_qtBinPath.isEmpty(), return);
     m_executableFileName = s60runConfig->localExecutableFileName();
+    m_runSmartInstaller = activeDeployConf->runSmartInstaller();
 
     switch (activeDeployConf->communicationChannel()) {
     case S60DeployConfiguration::CommunicationSerialConnection:
@@ -582,6 +583,13 @@ void S60DeviceRunControl::start()
     m_launchProgress->setProgressValue(0);
     m_launchProgress->reportStarted();
     emit started();
+
+    if (m_runSmartInstaller) { //Smart Installer does the running by itself
+        appendMessage(tr("Please finalise the installation on your device."), NormalMessageFormat);
+        emit finished();
+        return;
+    }
+
     if (m_serialPortName.isEmpty() && m_address.isEmpty()) {
         m_launchProgress->reportCanceled();
         QString msg = tr("No device is connected. Please connect a device and try again.");
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.h b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.h
index e5f02d951b934d5dddca42e85b71fa25c85c4221..3d4cfb6f096fb048d3e615d6c622742aa304f6c8 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.h
+++ b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.h
@@ -233,6 +233,7 @@ private:
     QString m_executableFileName;
     QString m_qtDir;
     QString m_qtBinPath;
+    bool m_runSmartInstaller;
 
     tcftrk::TcfTrkDevice *m_tcfTrkDevice;
     trk::Launcher *m_launcher;