diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp
index 8f782bd792c6fe5ae8a9eb53d2d82f9a0b6d9527..2808520c167e85e4d641a5a6ec74474073fc4ee9 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp
@@ -56,6 +56,7 @@
 #include <qt4project.h>
 #include <qt4target.h>
 
+#include <QtCore/QDateTime>
 #include <QtCore/QProcess>
 #include <QtCore/QProcessEnvironment>
 #include <QtCore/QRegExp>
@@ -401,9 +402,8 @@ bool MaemoPackageCreationStep::packagingNeeded() const
 
     const int deployableCount = deployables->deployableCount();
     for (int i = 0; i < deployableCount; ++i) {
-        if (packageInfo.lastModified()
-            <= QFileInfo(deployables->deployableAt(i).localFilePath)
-               .lastModified())
+        if (isFileNewerThan(deployables->deployableAt(i).localFilePath,
+                packageInfo.lastModified()))
             return true;
     }
 
@@ -423,6 +423,25 @@ bool MaemoPackageCreationStep::packagingNeeded() const
     return false;
 }
 
+bool MaemoPackageCreationStep::isFileNewerThan(const QString &filePath,
+    const QDateTime &timeStamp) const
+{
+    QFileInfo fileInfo(filePath);
+    if (!fileInfo.exists() || fileInfo.lastModified() >= timeStamp)
+        return true;
+    if (fileInfo.isDir()) {
+        const QStringList dirContents = QDir(filePath)
+            .entryList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);
+        foreach (const QString &curFileName, dirContents) {
+            const QString curFilePath
+                = filePath + QLatin1Char('/') + curFileName;
+            if (isFileNewerThan(curFilePath, timeStamp))
+                return true;
+        }
+    }
+    return false;
+}
+
 QString MaemoPackageCreationStep::packageFilePath() const
 {
     QString error;
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h
index ed5fe6efb950ec524db3b56f4cd5db98b8b76243..bacd7ec4779722b4de03f5d5e2d65ebd75b24e39 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h
@@ -45,6 +45,7 @@
 #include <projectexplorer/buildstep.h>
 
 QT_BEGIN_NAMESPACE
+class QDateTime;
 class QFile;
 class QProcess;
 QT_END_NAMESPACE
@@ -112,6 +113,8 @@ private:
     QString targetRoot() const;
     static QString nativePath(const QFile &file);
     bool packagingNeeded() const;
+    bool isFileNewerThan(const QString &filePath,
+        const QDateTime &timeStamp) const;
     void raiseError(const QString &shortMsg,
                     const QString &detailedMsg = QString());
     QString buildDirectory() const;