diff --git a/src/plugins/remotelinux/maemopackagecreationstep.cpp b/src/plugins/remotelinux/maemopackagecreationstep.cpp
index 86b458877e5702892214f469fedaf910c836705d..e63af4958593ae704a716fc534411a4532a2701b 100644
--- a/src/plugins/remotelinux/maemopackagecreationstep.cpp
+++ b/src/plugins/remotelinux/maemopackagecreationstep.cpp
@@ -442,10 +442,16 @@ bool MaemoDebianPackageCreationStep::copyDebianFiles(bool inSourceBuild)
     QDir templatesDir(templatesDirPath);
     const QStringList &files = templatesDir.entryList(QDir::Files);
     foreach (const QString &fileName, files) {
-        const QString srcFile
-                = templatesDirPath + QLatin1Char('/') + fileName;
-        const QString destFile
-                = debianDirPath + QLatin1Char('/') + fileName;
+        const QString srcFile = templatesDirPath + QLatin1Char('/') + fileName;
+        QString newFileName = fileName;
+        if (newFileName == Qt4HarmattanTarget::aegisManifestFileName()) {
+            // If the user has touched the Aegis manifest file, we copy it for use
+            // by MADDE. Otherwise the required capabilities will be auto-detected.
+            if (QFileInfo(srcFile).size() == 0)
+                continue;
+            newFileName = maemoTarget()->packageName() + QLatin1String(".aegis");
+        }
+        const QString destFile = debianDirPath + QLatin1Char('/') + newFileName;
         if (fileName == QLatin1String("rules")) {
             if (!adaptRulesFile(srcFile, destFile))
                 return false;
diff --git a/src/plugins/remotelinux/qt4maemotarget.cpp b/src/plugins/remotelinux/qt4maemotarget.cpp
index cb0fb20f83284cf8ba949ca90b863bf4def5dc38..3a89c2bd028bbd04b38e1d14b4928b84b403950f 100644
--- a/src/plugins/remotelinux/qt4maemotarget.cpp
+++ b/src/plugins/remotelinux/qt4maemotarget.cpp
@@ -1083,6 +1083,17 @@ QString Qt4HarmattanTarget::defaultDisplayName()
         "Qt4 Harmattan target display name");
 }
 
+QString Qt4HarmattanTarget::aegisManifestFileName()
+{
+    return QLatin1String("manifest.aegis");
+}
+
+void Qt4HarmattanTarget::handleTargetAddedSpecial()
+{
+    AbstractDebBasedQt4MaemoTarget::handleTargetAddedSpecial();
+    QFile(debianDirPath() + QLatin1Char('/') + aegisManifestFileName()).open(QIODevice::WriteOnly);
+}
+
 void Qt4HarmattanTarget::addAdditionalControlFileFields(QByteArray &controlContents)
 {
     Q_UNUSED(controlContents);
diff --git a/src/plugins/remotelinux/qt4maemotarget.h b/src/plugins/remotelinux/qt4maemotarget.h
index 9b647551d95475c23035adc6286a1bc99f29dedf..c5745c00ab5c0154b159699220bf95415f9f892f 100644
--- a/src/plugins/remotelinux/qt4maemotarget.h
+++ b/src/plugins/remotelinux/qt4maemotarget.h
@@ -138,6 +138,7 @@ signals:
     void controlChanged();
 
 protected:
+    virtual void handleTargetAddedSpecial();
     bool adaptControlFileField(QByteArray &document, const QByteArray &fieldName,
         const QByteArray &newFieldValue);
 
@@ -151,7 +152,6 @@ private:
     virtual bool setShortDescriptionInternal(const QString &description);
 
     virtual ActionStatus createSpecialTemplates();
-    virtual void handleTargetAddedSpecial();
     virtual bool targetCanBeRemoved() const;
     virtual void removeTarget();
     virtual bool initAdditionalPackagingSettingsFromOtherTarget();
@@ -258,8 +258,10 @@ public:
     virtual bool allowsQmlDebugging() const { return true; }
 
     static QString defaultDisplayName();
+    static QString aegisManifestFileName();
 
 private:
+    void handleTargetAddedSpecial();
     virtual void addAdditionalControlFileFields(QByteArray &controlContents);
     virtual QString debianDirName() const;
     virtual QByteArray packageManagerNameFieldName() const;