diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.cpp
index c3de383e26deaaecb1183d2e038af6b14526846d..4b37b77ffeac0d9fcc429f4de56c579ce21854a5 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.cpp
@@ -335,11 +335,14 @@ void MaemoDeployStep::start()
 
 void MaemoDeployStep::handleConnectionFailure()
 {
-    if (m_state != Inactive) {
-        raiseError(tr("Could not connect to host: %1")
-            .arg(m_connection->errorString()));
-        setState(Inactive);
-    }
+    if (m_state == Inactive)
+        return;
+
+    const QString errorMsg = m_state == Connecting
+        ? MaemoGlobal::failedToConnectToServerMessage(m_connection, deviceConfig())
+        : tr("Connection error: %1").arg(m_connection->errorString());
+    raiseError(errorMsg);
+    setState(Inactive);
 }
 
 void MaemoDeployStep::handleSftpChannelInitialized()
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp
index f88ba0825e49488b595c3f6d66276a34368f119d..318f5e1bca9bec60d8a569b8f0875c46fa5a4602 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp
@@ -29,6 +29,9 @@
 
 #include "maemoglobal.h"
 
+#include "maemodeviceconfigurations.h"
+
+#include <coreplugin/ssh/sshconnection.h>
 #include <utils/environment.h>
 
 #include <QtCore/QCoreApplication>
@@ -79,6 +82,23 @@ QString MaemoGlobal::remoteEnvironment(const QList<Utils::EnvironmentItem> &list
     return env.mid(0, env.size() - 1);
 }
 
+QString MaemoGlobal::failedToConnectToServerMessage(const Core::SshConnection::Ptr &connection,
+    const MaemoDeviceConfig &deviceConfig)
+{
+    QString errorMsg = TR("Could not connect to host: %1")
+        .arg(connection->errorString());
+
+    if (deviceConfig.type == MaemoDeviceConfig::Simulator) {
+        if (connection->errorState() == Core::SshTimeoutError
+                || connection->errorState() == Core::SshSocketError) {
+            errorMsg += TR("\nDid you start Qemu?");
+        }
+    } else if (connection->errorState() == Core::SshTimeoutError) {
+        errorMsg += TR("\nIs the device connected and set up for network access?");
+    }
+    return errorMsg;
+}
+
 bool MaemoGlobal::removeRecursively(const QString &filePath, QString &error)
 {
     QFileInfo fileInfo(filePath);
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h
index 24f8cd2cf3194985fc6a7aab3a3863d4078a9c01..d86ff743343338bac09fd4cf5dd21aa105b2e253 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h
@@ -37,6 +37,7 @@
 #include <projectexplorer/projectexplorerconstants.h>
 
 #include <QtCore/QList>
+#include <QtCore/QSharedPointer>
 
 #define ASSERT_STATE_GENERIC(State, expected, actual)                         \
     MaemoGlobal::assertState<State>(expected, actual, Q_FUNC_INFO)
@@ -46,8 +47,11 @@ class QProcess;
 class QString;
 QT_END_NAMESPACE
 
+namespace Core { class SshConnection; }
+
 namespace Qt4ProjectManager {
 namespace Internal {
+class MaemoDeviceConfig;
 
 class MaemoGlobal
 {
@@ -57,6 +61,8 @@ public:
     static QString remoteCommandPrefix(const QString &commandFilePath);
     static QString remoteEnvironment(const QList<Utils::EnvironmentItem> &list);
     static QString remoteSourceProfilesCommand();
+    static QString failedToConnectToServerMessage(const QSharedPointer<Core::SshConnection> &connection,
+        const MaemoDeviceConfig &deviceConfig);
 
     static bool removeRecursively(const QString &filePath, QString &error);
     static void callMaddeShellScript(QProcess &proc, const QString &maddeRoot,
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemosshrunner.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemosshrunner.cpp
index ec9f3720f9ddbfbc101f1a82f50658d432c85b19..8e4e0fca9799164974778d7ec02f771ca82eba92 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemosshrunner.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemosshrunner.cpp
@@ -152,9 +152,10 @@ void MaemoSshRunner::handleConnectionFailure()
     if (m_state == Inactive)
         qWarning("Unexpected state %d in %s.", m_state, Q_FUNC_INFO);
 
-    const QString errorTemplate = m_state == Connecting
-        ? tr("Could not connect to host: %1") : tr("Connection failed: %1");
-    emitError(errorTemplate.arg(m_connection->errorString()));
+    const QString errorMsg = m_state == Connecting
+        ? MaemoGlobal::failedToConnectToServerMessage(m_connection, m_devConfig)
+        : tr("Connection error: %1").arg(m_connection->errorString());
+    emitError(errorMsg);
 }
 
 void MaemoSshRunner::cleanup()