diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp
index e0d4d058122e58e3865a595ec78f21cd5efbb12f..1c5d5d3ab2812336114923434691c51f46a617aa 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp
@@ -164,8 +164,6 @@ MaemoRunConfiguration::MaemoRunConfiguration(Qt4Project *project,
     , m_simulatorSshPort(source->m_simulatorSshPort)
     , m_simulatorGdbServerPort(source->m_simulatorGdbServerPort)
     , m_cachedSimulatorInformationValid(false)
-    , m_isUserSetSimulator(source->m_isUserSetSimulator)
-    , m_userSimulatorPath(source->m_userSimulatorPath)
     , m_gdbPath(source->m_gdbPath)
     , m_devConfig(source->m_devConfig)
     , m_arguments(source->m_arguments)
@@ -396,27 +394,38 @@ QString MaemoRunConfiguration::simulatorPath() const
     qDebug("MaemoRunConfiguration::simulatorPath() called, %s",
         qPrintable(m_simulatorPath));
 
-    const_cast<MaemoRunConfiguration*> (this)->updateSimulatorInformation();
+    if (!m_cachedSimulatorInformationValid)
+        const_cast<MaemoRunConfiguration*> (this)->updateSimulatorInformation();
     return m_simulatorPath;
 }
 
 QString MaemoRunConfiguration::visibleSimulatorParameter() const
 {
-    qDebug("MaemoRunConfiguration::visibleSimulatorParameter() called");
+    qDebug("MaemoRunConfiguration::visibleSimulatorParameter() called, %s",
+        qPrintable(m_visibleSimulatorParameter));
 
-    const_cast<MaemoRunConfiguration*> (this)->updateSimulatorInformation();
+    if (!m_cachedSimulatorInformationValid)
+        const_cast<MaemoRunConfiguration*> (this)->updateSimulatorInformation();
     return m_visibleSimulatorParameter;
 }
 
 QString MaemoRunConfiguration::simulator() const
 {
-    const_cast<MaemoRunConfiguration*> (this)->updateSimulatorInformation();
+    qDebug("MaemoRunConfiguration::simulator() called, %s",
+        qPrintable(m_simulator));
+
+    if (!m_cachedSimulatorInformationValid)
+        const_cast<MaemoRunConfiguration*> (this)->updateSimulatorInformation();
     return m_simulator;
 }
 
 QString MaemoRunConfiguration::simulatorArgs() const
 {
-    const_cast<MaemoRunConfiguration*> (this)->updateSimulatorInformation();
+    qDebug("MaemoRunConfiguration::simulatorArgs() called, %s",
+        qPrintable(m_simulatorArgs));
+
+    if (!m_cachedSimulatorInformationValid)
+        const_cast<MaemoRunConfiguration*> (this)->updateSimulatorInformation();
     return m_simulatorArgs;
 }
 
@@ -425,7 +434,6 @@ void MaemoRunConfiguration::setArguments(const QStringList &args)
     m_arguments = args;
 }
 
-
 bool MaemoRunConfiguration::isQemuRunning() const
 {
     return (qemu && qemu->state() != QProcess::NotRunning);
@@ -437,38 +445,6 @@ void MaemoRunConfiguration::invalidateCachedTargetInformation()
     emit targetInformationChanged();
 }
 
-void MaemoRunConfiguration::setUserSimulatorPath(const QString &path)
-{
-    qDebug("MaemoRunConfiguration::setUserSimulatorPath() called, "
-        "m_simulatorPath: %s, new path: %s", qPrintable(m_simulatorPath),
-        qPrintable(path));
-
-    m_isUserSetSimulator = true;
-    if (m_userSimulatorPath != path)
-        m_cachedSimulatorInformationValid = false;
-
-    m_userSimulatorPath = path;
-    emit cachedSimulatorInformationChanged();
-}
-
-void MaemoRunConfiguration::invalidateCachedSimulatorInformation()
-{
-    qDebug("MaemoRunConfiguration::invalidateCachedSimulatorInformation() "
-        "called");
-
-    m_cachedSimulatorInformationValid = false;
-    emit cachedSimulatorInformationChanged();
-}
-
-void MaemoRunConfiguration::resetCachedSimulatorInformation()
-{
-    m_userSimulatorPath.clear();
-    m_isUserSetSimulator = false;
-
-    m_cachedSimulatorInformationValid = false;
-    emit cachedSimulatorInformationChanged();
-}
-
 void MaemoRunConfiguration::updateTarget()
 {
     if (m_cachedTargetInformationValid)
@@ -502,20 +478,17 @@ void MaemoRunConfiguration::updateSimulatorInformation()
         return;
 
     m_simulator.clear();
+    m_simulatorPath.clear();
     m_simulatorArgs.clear();
+    m_visibleSimulatorParameter.clear();
     m_cachedSimulatorInformationValid = true;
-    m_simulatorPath = QDir::toNativeSeparators(m_userSimulatorPath);
-    m_visibleSimulatorParameter = tr("Could not autodetect target simulator, "
-        "please choose one on your own.");
 
-    if (!m_isUserSetSimulator) {
-        if (const MaemoToolChain *tc = toolchain())
-            m_simulatorPath = QDir::toNativeSeparators(tc->simulatorRoot());
-    }
+    if (const MaemoToolChain *tc = toolchain())
+        m_simulatorPath = QDir::toNativeSeparators(tc->simulatorRoot());
 
     if (!m_simulatorPath.isEmpty()) {
-        m_visibleSimulatorParameter = tr("'%1' is not a valid Maemo simulator.")
-            .arg(m_simulatorPath);
+        m_visibleSimulatorParameter = tr("'%1' does not contain a valid Maemo "
+            "simulator image.").arg(m_simulatorPath);
     }
 
     QDir dir(m_simulatorPath);
@@ -555,8 +528,8 @@ void MaemoRunConfiguration::updateSimulatorInformation()
             }
         }
     } else {
-        m_visibleSimulatorParameter = tr("'%1' could not be found. Please "
-            "choose a simulator on your own.").arg(m_simulatorPath);
+        m_visibleSimulatorParameter = tr("'%1' could not be found. Do you have "
+            "already installed a Maemo simulator image?").arg(m_simulatorPath);
     }
 
     emit cachedSimulatorInformationChanged();
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h
index b9a65a24ad058cc908a531a3af8b3c6417e227dc..51912ae12b54b80fca25c16560fd91fcf4f4cc28 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h
@@ -123,10 +123,6 @@ private slots:
     void updateDeviceConfigurations();
     void invalidateCachedTargetInformation();
 
-    void setUserSimulatorPath(const QString &path);
-    void invalidateCachedSimulatorInformation();
-    void resetCachedSimulatorInformation();
-
     void startStopQemu();
     void qemuProcessFinished();
 
@@ -153,9 +149,6 @@ private:
     QString m_simulatorGdbServerPort;
     bool m_cachedSimulatorInformationValid;
 
-    bool m_isUserSetSimulator;
-    QString m_userSimulatorPath;
-
     QString m_gdbPath;
 
     MaemoDeviceConfig m_devConfig;
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.cpp
index bdd1b60da65ba7c0caa7a23d3362db08e9937beb..4e53bbe9450c393c0500cf16525aa32759fd805e 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.cpp
@@ -82,9 +82,9 @@ MaemoRunConfigurationWidget::MaemoRunConfigurationWidget(
     m_debuggerLabel = new QLabel(m_runConfiguration->gdbCmd());
     mainLayout->addRow(tr("Debugger:"), m_debuggerLabel);
     mainLayout->addItem(new QSpacerItem(10, 10));
-    m_simPathNameLabel = new QLabel(tr("Simulator Path:"));
-    m_simPathValueLabel = new QLabel(m_runConfiguration->simulatorPath());
-    mainLayout->addRow(m_simPathNameLabel, m_simPathValueLabel);
+    m_simNameLabel = new QLabel(tr("Simulator:"));
+    m_simValueLabel = new QLabel(m_runConfiguration->visibleSimulatorParameter());
+    mainLayout->addRow(m_simNameLabel, m_simValueLabel);
     resetDeviceConfigurations();
 
     connect(m_runConfiguration, SIGNAL(cachedSimulatorInformationChanged()),
@@ -121,7 +121,7 @@ void MaemoRunConfigurationWidget::updateTargetInformation()
 
 void MaemoRunConfigurationWidget::updateSimulatorPath()
 {
-    m_simPathValueLabel->setText(m_runConfiguration->simulatorPath());
+    m_simValueLabel->setText(m_runConfiguration->visibleSimulatorParameter());
 }
 
 void MaemoRunConfigurationWidget::deviceConfigurationChanged(const QString &name)
@@ -135,8 +135,8 @@ void MaemoRunConfigurationWidget::deviceConfigurationChanged(const QString &name
 void MaemoRunConfigurationWidget::setSimInfoVisible(const MaemoDeviceConfig &devConf)
 {
     const bool isSimulator = devConf.type == MaemoDeviceConfig::Simulator;
-    m_simPathNameLabel->setVisible(isSimulator);
-    m_simPathValueLabel->setVisible(isSimulator);
+    m_simNameLabel->setVisible(isSimulator);
+    m_simValueLabel->setVisible(isSimulator);
 }
 
 void MaemoRunConfigurationWidget::resetDeviceConfigurations()
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.h b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.h
index ff0e4588ef6b45c7e0489d6108be5cdbb2f634b9..14cba57955b6e44808d277f1f4858cd8c7a9729b 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.h
@@ -74,8 +74,8 @@ private:
     QLabel *m_executableLabel;
     QLabel *m_debuggerLabel;
     QComboBox *m_devConfBox;
-    QLabel *m_simPathNameLabel;
-    QLabel *m_simPathValueLabel;
+    QLabel *m_simNameLabel;
+    QLabel *m_simValueLabel;
     MaemoRunConfiguration *m_runConfiguration;
 };