diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
index 9ab5d93b3b7047586b3659a0ac1dd4b8212c1af1..d547c3b6d83d77568d2764459da2766ec9479b3d 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
@@ -435,6 +435,14 @@ S60DeviceRunControlBase::S60DeviceRunControlBase(const QSharedPointer<RunConfigu
     m_packageFile = QFileInfo(m_packageFilePath).fileName();
 }
 
+S60DeviceRunControlBase::~S60DeviceRunControlBase()
+{
+    if (m_launcher) {
+        m_launcher->deleteLater();
+        m_launcher = 0;
+    }
+}
+
 void S60DeviceRunControlBase::start()
 {
     emit started();
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.h b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.h
index 1efaca48f4a22450bf67e02c0034cfc90a34e53b..444e8855f65e62ccc56dc606622a834e57ba410f 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.h
+++ b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.h
@@ -129,7 +129,7 @@ class S60DeviceRunControlBase : public ProjectExplorer::RunControl
     Q_OBJECT
 public:
     explicit S60DeviceRunControlBase(const QSharedPointer<ProjectExplorer::RunConfiguration> &runConfiguration);
-    ~S60DeviceRunControlBase() {}
+    ~S60DeviceRunControlBase();
     virtual void start();
     virtual void stop();
     virtual bool isRunning() const;