diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp
index 1c5d5d3ab2812336114923434691c51f46a617aa..6f891b0907dfb79e7806f3b1c0d522e0b9470694 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp
@@ -385,17 +385,31 @@ const QString MaemoRunConfiguration::dumperLib() const
 
 QString MaemoRunConfiguration::executable() const
 {
-    const_cast<MaemoRunConfiguration*> (this)->updateTarget();
+    updateTarget();
     return m_executable;
 }
 
+QString MaemoRunConfiguration::simulatorSshPort() const
+{
+    if (!m_cachedSimulatorInformationValid)
+        updateTarget();
+    return m_simulatorSshPort;
+}
+
+QString MaemoRunConfiguration::simulatorGdbServerPort() const
+{
+    if (!m_cachedSimulatorInformationValid)
+        updateTarget();
+    return m_simulatorGdbServerPort;
+}
+
 QString MaemoRunConfiguration::simulatorPath() const
 {
     qDebug("MaemoRunConfiguration::simulatorPath() called, %s",
         qPrintable(m_simulatorPath));
 
     if (!m_cachedSimulatorInformationValid)
-        const_cast<MaemoRunConfiguration*> (this)->updateSimulatorInformation();
+        updateSimulatorInformation();
     return m_simulatorPath;
 }
 
@@ -405,7 +419,7 @@ QString MaemoRunConfiguration::visibleSimulatorParameter() const
         qPrintable(m_visibleSimulatorParameter));
 
     if (!m_cachedSimulatorInformationValid)
-        const_cast<MaemoRunConfiguration*> (this)->updateSimulatorInformation();
+        updateSimulatorInformation();
     return m_visibleSimulatorParameter;
 }
 
@@ -415,7 +429,7 @@ QString MaemoRunConfiguration::simulator() const
         qPrintable(m_simulator));
 
     if (!m_cachedSimulatorInformationValid)
-        const_cast<MaemoRunConfiguration*> (this)->updateSimulatorInformation();
+        updateSimulatorInformation();
     return m_simulator;
 }
 
@@ -425,7 +439,7 @@ QString MaemoRunConfiguration::simulatorArgs() const
         qPrintable(m_simulatorArgs));
 
     if (!m_cachedSimulatorInformationValid)
-        const_cast<MaemoRunConfiguration*> (this)->updateSimulatorInformation();
+        updateSimulatorInformation();
     return m_simulatorArgs;
 }
 
@@ -445,7 +459,7 @@ void MaemoRunConfiguration::invalidateCachedTargetInformation()
     emit targetInformationChanged();
 }
 
-void MaemoRunConfiguration::updateTarget()
+void MaemoRunConfiguration::updateTarget() const
 {
     if (m_cachedTargetInformationValid)
         return;
@@ -472,7 +486,7 @@ void MaemoRunConfiguration::updateTarget()
     emit targetInformationChanged();
 }
 
-void MaemoRunConfiguration::updateSimulatorInformation()
+void MaemoRunConfiguration::updateSimulatorInformation() const
 {
     if (m_cachedSimulatorInformationValid)
         return;
@@ -481,6 +495,9 @@ void MaemoRunConfiguration::updateSimulatorInformation()
     m_simulatorPath.clear();
     m_simulatorArgs.clear();
     m_visibleSimulatorParameter.clear();
+    m_simulatorLibPath.clear();
+    m_simulatorSshPort.clear();
+    m_simulatorGdbServerPort.clear();
     m_cachedSimulatorInformationValid = true;
 
     if (const MaemoToolChain *tc = toolchain())
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h
index 51912ae12b54b80fca25c16560fd91fcf4f4cc28..b9406a6437b6cef369cd12d848340b18bb9b5ea7 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h
@@ -94,8 +94,8 @@ public:
     QString simulator() const;
     QString simulatorArgs() const;
     QString simulatorPath() const;
-    QString simulatorSshPort() const { return m_simulatorSshPort; }
-    QString simulatorGdbServerPort() const { return m_simulatorGdbServerPort; }
+    QString simulatorSshPort() const;
+    QString simulatorGdbServerPort() const;
     QString visibleSimulatorParameter() const;
 
     const QString sshCmd() const;
@@ -109,8 +109,8 @@ public:
 
 signals:
     void deviceConfigurationsUpdated();
-    void targetInformationChanged();
-    void cachedSimulatorInformationChanged();
+    void targetInformationChanged() const;
+    void cachedSimulatorInformationChanged() const;
     void qemuProcessStatus(bool running);
 
 protected:
@@ -130,24 +130,24 @@ private slots:
 
 private:
     void init();
-    void updateTarget();
-    void updateSimulatorInformation();
+    void updateTarget() const;
+    void updateSimulatorInformation() const;
     const QString cmd(const QString &cmdName) const;
     const MaemoToolChain *toolchain() const;
     bool fileNeedsDeployment(const QString &path, const QDateTime &lastDeployed) const;
 
-    QString m_executable;
+    mutable QString m_executable;
     QString m_proFilePath;
-    bool m_cachedTargetInformationValid;
-
-    QString m_simulator;
-    QString m_simulatorArgs;
-    QString m_simulatorPath;
-    QString m_visibleSimulatorParameter;
-    QString m_simulatorLibPath;
-    QString m_simulatorSshPort;
-    QString m_simulatorGdbServerPort;
-    bool m_cachedSimulatorInformationValid;
+    mutable bool m_cachedTargetInformationValid;
+
+    mutable QString m_simulator;
+    mutable QString m_simulatorArgs;
+    mutable QString m_simulatorPath;
+    mutable QString m_visibleSimulatorParameter;
+    mutable QString m_simulatorLibPath;
+    mutable QString m_simulatorSshPort;
+    mutable QString m_simulatorGdbServerPort;
+    mutable bool m_cachedSimulatorInformationValid;
 
     QString m_gdbPath;