diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
index 54d08018bbc3c1618f34c422b38897b9eacc5d2a..b62ae496140ea721375c5dc464fb4d5809f91678 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
@@ -247,7 +247,7 @@ QString S60DeviceRunConfiguration::packageFileNameWithTargetInfo() const
     TargetInformation ti = qt4Target()->qt4Project()->rootProjectNode()->targetInformation(m_proFilePath);
     if (!ti.valid)
         return QString();
-    QString baseFileName = ti.workingDir + QLatin1Char('/') + ti.target;
+    QString baseFileName = ti.buildDir + QLatin1Char('/') + ti.target;
     baseFileName += QLatin1Char('_')
                     + (isDebug() ? QLatin1String("debug") : QLatin1String("release"))
                     + QLatin1Char('-') + symbianPlatform() + QLatin1String(".sis");
@@ -284,7 +284,7 @@ QString S60DeviceRunConfiguration::packageTemplateFileName() const
     TargetInformation ti = qt4Target()->qt4Project()->rootProjectNode()->targetInformation(m_proFilePath);
     if (!ti.valid)
         return QString();
-    return ti.workingDir + QLatin1Char('/') + ti.target + QLatin1String("_template.pkg");
+    return ti.buildDir + QLatin1Char('/') + ti.target + QLatin1String("_template.pkg");
 }
 
 /* Grep a package file for the '.exe' file. Curently for use on Linux only
@@ -351,7 +351,7 @@ QString S60DeviceRunConfiguration::signedPackage() const
     TargetInformation ti = qt4Target()->qt4Project()->rootProjectNode()->targetInformation(m_proFilePath);
     if (!ti.valid)
         return QString();
-    return ti.workingDir + QLatin1Char('/') + ti.target + QLatin1String(".sis");
+    return ti.buildDir + QLatin1Char('/') + ti.target + QLatin1String(".sis");
 }
 
 QStringList S60DeviceRunConfiguration::commandLineArguments() const
diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp
index 5cc67a80085dd38f4ffd3699f122f12706705703..9db7a03b4a453c35fe8a1542490327948a14ac76 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.cpp
+++ b/src/plugins/qt4projectmanager/qt4nodes.cpp
@@ -1428,7 +1428,8 @@ TargetInformation Qt4ProFileNode::targetInformation(ProFileReader *reader) const
     if (!reader)
         return result;
 
-    const QString baseDir = buildDir();
+    result.buildDir = buildDir();
+    const QString baseDir = result.buildDir;
     // qDebug() << "base build dir is:"<<baseDir;
 
     // Working Directory
diff --git a/src/plugins/qt4projectmanager/qt4nodes.h b/src/plugins/qt4projectmanager/qt4nodes.h
index 62dec8bba617faf3eb25d63534294bb67637d720..a9585d88379d419fa9ad4c328a43ef7c7666ede9 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.h
+++ b/src/plugins/qt4projectmanager/qt4nodes.h
@@ -196,12 +196,14 @@ struct TargetInformation
     QString workingDir;
     QString target;
     QString executable;
+    QString buildDir;
     bool operator==(const TargetInformation &other) const
     {
         return workingDir == other.workingDir
                 && target == other.target
                 && executable == other.executable
-                && valid == valid;
+                && valid == valid
+                && buildDir == buildDir;
     }
     bool operator!=(const TargetInformation &other) const
     {
@@ -216,7 +218,8 @@ struct TargetInformation
         : valid(other.valid),
           workingDir(other.workingDir),
           target(other.target),
-          executable(other.executable)
+          executable(other.executable),
+          buildDir(other.buildDir)
     {
     }