diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp
index f4572b079bc915088d2868716dcc226fde96829e..b9c9a67c75a5b71648c08f7bcca3d20f0cae8173 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp
@@ -157,9 +157,9 @@ QVariantMap MaemoRunConfiguration::toMap() const
     map.insert(DeviceIdKey, m_devConfig.internalId);
     map.insert(ArgumentsKey, m_arguments);
 
-    map.insert(LastDeployedKey, m_lastDeployed);
-    map.insert(DebuggingHelpersLastDeployedKey,
-        m_debuggingHelpersLastDeployed);
+    addDeployTimesToMap(LastDeployedKey, m_lastDeployed, map);
+    addDeployTimesToMap(DebuggingHelpersLastDeployedKey,
+                        m_debuggingHelpersLastDeployed, map);
 
     map.insert(SimulatorPathKey, m_simulatorPath);
 
@@ -170,6 +170,16 @@ QVariantMap MaemoRunConfiguration::toMap() const
     return map;
 }
 
+void MaemoRunConfiguration::addDeployTimesToMap(const QString &key,
+    const QMap<QString, QDateTime> &deployTimes, QVariantMap &map) const
+{
+    QMap<QString, QVariant> variantMap;
+    QMap<QString, QDateTime>::ConstIterator it = deployTimes.begin();
+    for (; it != deployTimes.end(); ++it)
+        variantMap.insert(it.key(), it.value());
+    map.insert(key, variantMap);
+}
+
 bool MaemoRunConfiguration::fromMap(const QVariantMap &map)
 {
     if (!RunConfiguration::fromMap(map))
@@ -179,9 +189,9 @@ bool MaemoRunConfiguration::fromMap(const QVariantMap &map)
         find(map.value(DeviceIdKey, 0).toInt()));
     m_arguments = map.value(ArgumentsKey).toStringList();
 
-    m_lastDeployed = map.value(LastDeployedKey).toDateTime();
-    m_debuggingHelpersLastDeployed =
-        map.value(DebuggingHelpersLastDeployedKey).toDateTime();
+    getDeployTimesFromMap(LastDeployedKey, m_lastDeployed, map);
+    getDeployTimesFromMap(DebuggingHelpersLastDeployedKey,
+                          m_debuggingHelpersLastDeployed, map);
 
     m_simulatorPath = map.value(SimulatorPathKey).toString();
 
@@ -192,14 +202,23 @@ bool MaemoRunConfiguration::fromMap(const QVariantMap &map)
     return true;
 }
 
-bool MaemoRunConfiguration::currentlyNeedsDeployment() const
+void MaemoRunConfiguration::getDeployTimesFromMap(const QString &key,
+    QMap<QString, QDateTime> &deployTimes, const QVariantMap &map)
 {
-    return fileNeedsDeployment(executable(), m_lastDeployed);
+    const QVariantMap &variantMap = map.value(key).toMap();
+    for (QVariantMap::ConstIterator it = variantMap.begin();
+         it != variantMap.end(); ++it)
+        deployTimes.insert(it.key(), it.value().toDateTime());
 }
 
-void MaemoRunConfiguration::wasDeployed()
+bool MaemoRunConfiguration::currentlyNeedsDeployment(const QString &host) const
 {
-    m_lastDeployed = QDateTime::currentDateTime();
+    return fileNeedsDeployment(executable(), m_lastDeployed.value(host));
+}
+
+void MaemoRunConfiguration::wasDeployed(const QString &host)
+{
+    m_lastDeployed.insert(host, QDateTime::currentDateTime());
 }
 
 bool MaemoRunConfiguration::hasDebuggingHelpers() const
@@ -208,16 +227,18 @@ bool MaemoRunConfiguration::hasDebuggingHelpers() const
     return qt4bc->qtVersion()->hasDebuggingHelper();
 }
 
-bool MaemoRunConfiguration::debuggingHelpersNeedDeployment() const
+bool MaemoRunConfiguration::debuggingHelpersNeedDeployment(const QString &host) const
 {
-    if (hasDebuggingHelpers())
-        return fileNeedsDeployment(dumperLib(), m_debuggingHelpersLastDeployed);
+    if (hasDebuggingHelpers()) {
+        return fileNeedsDeployment(dumperLib(),
+                   m_debuggingHelpersLastDeployed.value(host));
+    }
     return false;
 }
 
-void MaemoRunConfiguration::debuggingHelpersDeployed()
+void MaemoRunConfiguration::debuggingHelpersDeployed(const QString &host)
 {
-    m_debuggingHelpersLastDeployed = QDateTime::currentDateTime();
+    m_debuggingHelpersLastDeployed.insert(host, QDateTime::currentDateTime());
 }
 
 bool MaemoRunConfiguration::fileNeedsDeployment(const QString &path,
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h
index fd621aab6478dcff178634ade7671c439ace95a7..0e50c834721d0628eaeb64fecfdd66ae6a6ed924 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h
@@ -68,12 +68,12 @@ public:
     Qt4Target *qt4Target() const;
     Qt4BuildConfiguration *activeQt4BuildConfiguration() const;
 
-    bool currentlyNeedsDeployment() const;
-    void wasDeployed();
+    bool currentlyNeedsDeployment(const QString &host) const;
+    void wasDeployed(const QString &host);
 
     bool hasDebuggingHelpers() const;
-    bool debuggingHelpersNeedDeployment() const;
-    void debuggingHelpersDeployed();
+    bool debuggingHelpersNeedDeployment(const QString &host) const;
+    void debuggingHelpersDeployed(const QString &host);
 
     QString maddeRoot() const;
     QString executable() const;
@@ -125,6 +125,12 @@ private:
     const QString cmd(const QString &cmdName) const;
     const MaemoToolChain *toolchain() const;
     bool fileNeedsDeployment(const QString &path, const QDateTime &lastDeployed) const;
+    void addDeployTimesToMap(const QString &key,
+                             const QMap<QString, QDateTime> &deployTimes,
+                             QVariantMap &map) const;
+    void getDeployTimesFromMap(const QString &key,
+                               QMap<QString, QDateTime> &deployTimes,
+                               const QVariantMap &map);
 
     mutable QString m_executable;
     QString m_proFilePath;
@@ -144,8 +150,9 @@ private:
     MaemoDeviceConfig m_devConfig;
     QStringList m_arguments;
 
-    QDateTime m_lastDeployed;
-    QDateTime m_debuggingHelpersLastDeployed;
+    // These map host names to deploy times.
+    QMap<QString, QDateTime> m_lastDeployed;
+    QMap<QString, QDateTime> m_debuggingHelpersLastDeployed;
 
     QProcess *qemu;
 };
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.cpp
index b21b020be75e3be9154638a002ba4f059825b804..531d413f0ba0649569347d3b67a00e9d1aef49a2 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.cpp
@@ -67,12 +67,13 @@ void AbstractMaemoRunControl::startDeployment(bool forDebugging)
 
     if (devConfig.isValid()) {
         deployables.clear();        
-        if (runConfig->currentlyNeedsDeployment()) {
+        if (runConfig->currentlyNeedsDeployment(devConfig.host)) {
             deployables.append(Deployable(executableFileName(),
                 QFileInfo(executableOnHost()).canonicalPath(),
                 &MaemoRunConfiguration::wasDeployed));
         }
-        if (forDebugging && runConfig->debuggingHelpersNeedDeployment()) {
+        if (forDebugging
+            && runConfig->debuggingHelpersNeedDeployment(devConfig.host)) {
             const QFileInfo &info(runConfig->dumperLib());
             deployables.append(Deployable(info.fileName(), info.canonicalPath(),
                 &MaemoRunConfiguration::debuggingHelpersDeployed));
@@ -119,7 +120,7 @@ void AbstractMaemoRunControl::deploy()
 void AbstractMaemoRunControl::handleFileCopied()
 {
     Deployable deployable = deployables.takeFirst();
-    (runConfig->*deployable.updateTimestamp)();
+    (runConfig->*deployable.updateTimestamp)(devConfig.host);
     m_progress.setProgressValue(m_progress.progressValue() + 1);
 }
 
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.h b/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.h
index 5a17c3d36e8d42947b717786b0060d85c883c12b..8557c00be54b7a7e0f93bbbec4e72ed709b4a48e 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.h
@@ -90,7 +90,7 @@ private:
 
     struct Deployable
     {
-        typedef void (MaemoRunConfiguration::*updateFunc)();
+        typedef void (MaemoRunConfiguration::*updateFunc)(const QString&);
         Deployable(const QString &f, const QString &d, updateFunc u)
             : fileName(f), dir(d), updateTimestamp(u) {}
         QString fileName;