diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp
index 5d64d96492f5a1c3323993afe127ba05b11327a4..3ab3575939df8a3dc46db6f4efe51621debecf3b 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp
@@ -230,8 +230,10 @@ bool MaemoPackageCreationStep::copyDebianFiles()
         ->debianDirPath(buildConfiguration()->target()->project());
     QDir templatesDir(templatesDirPath);
     const QStringList &files = templatesDir.entryList(QDir::Files);
-    const bool isHarmattanDevice
-        = maemoToolChain()->version() == MaemoToolChain::Maemo6;
+    const bool harmattanWorkaroundNeeded
+        = maemoToolChain()->version() == MaemoToolChain::Maemo6
+            && !qt4BuildConfiguration()->qt4Target()->qt4Project()
+                   ->applicationProFiles().isEmpty();
     foreach (const QString &fileName, files) {
         const QString srcFile
                 = templatesDirPath + QLatin1Char('/') + fileName;
@@ -245,7 +247,7 @@ bool MaemoPackageCreationStep::copyDebianFiles()
         }
 
         // Workaround for Harmattan icon bug
-        if (isHarmattanDevice && fileName == QLatin1String("rules"))
+        if (harmattanWorkaroundNeeded && fileName == QLatin1String("rules"))
             addWorkaroundForHarmattanBug(destFile);
     }
     return true;
@@ -549,20 +551,32 @@ void MaemoPackageCreationStep::addWorkaroundForHarmattanBug(const QString &rules
     const QByteArray lineBefore("Icon=" + projectName().toUtf8());
     const QByteArray lineAfter("Icon=/usr/share/icons/hicolor/64x64/apps/"
         + projectName().toUtf8() + ".png");
-    QString desktopFilePath = QFileInfo(rulesFile).dir().path()
+    QString desktopFileDir = QFileInfo(rulesFile).dir().path()
         + QLatin1Char('/') + projectName()
-        + QLatin1String("/usr/share/applications/") + projectName()
-        + QLatin1String(".desktop");
+        + QLatin1String("/usr/share/applications/");
 #ifdef Q_OS_WIN
-    desktopFilePath.remove(QLatin1Char(':'));
-    desktopFilePath.prepend(QLatin1Char('/'));
+    desktopFileDir.remove(QLatin1Char(':'));
+    desktopFileDir.prepend(QLatin1Char('/'));
 #endif
-    const QByteArray tmpFile = desktopFilePath.toUtf8() + ".sed";
-    const QByteArray sedCmd = "\tsed 's:" + lineBefore + ':'
-        + lineAfter + ":' " + desktopFilePath.toLocal8Bit() + " > " + tmpFile;
-    content.insert(makeInstallEol + 1, sedCmd);
-    content.insert(makeInstallEol + 1 + sedCmd.length() + 1, 
-        "\tmv " + tmpFile + ' ' + desktopFilePath.toUtf8());
+    const QList<Qt4ProFileNode *> &proFiles = qt4BuildConfiguration()
+        ->qt4Target()->qt4Project()->applicationProFiles();
+    int insertPos = makeInstallEol + 1;
+    foreach (const Qt4ProFileNode * const proFile, proFiles) {
+        const QString appName = proFile->targetInformation().target;
+        const QString desktopFilePath
+            = desktopFileDir +  appName + QLatin1String(".desktop");
+        const QString tmpFile
+            = desktopFileDir + appName + QLatin1String(".sed");
+        const QByteArray sedCmd = "\tsed 's:" + lineBefore + ':' + lineAfter
+            + ":' " + desktopFilePath.toLocal8Bit() + " > " + tmpFile.toUtf8()
+            + '\n';
+        const QByteArray mvCmd = "\tmv " + tmpFile.toUtf8() + ' '
+            + desktopFilePath.toUtf8() + '\n';
+        content.insert(insertPos, sedCmd);
+        insertPos += sedCmd.length();
+        content.insert(insertPos, mvCmd);
+        insertPos += mvCmd.length();
+    }
     rulesFile.resize(0);
     rulesFile.write(content);
 }
diff --git a/src/plugins/qt4projectmanager/wizards/librarywizarddialog.cpp b/src/plugins/qt4projectmanager/wizards/librarywizarddialog.cpp
index c6b2e97b7766f342fad0841680c3dd8719cc1915..59b32183e48c81c3f1575c708feb825e928f71d8 100644
--- a/src/plugins/qt4projectmanager/wizards/librarywizarddialog.cpp
+++ b/src/plugins/qt4projectmanager/wizards/librarywizarddialog.cpp
@@ -313,9 +313,6 @@ MobileLibraryParameters LibraryWizardDialog::mobileLibraryParameters() const
         mlp.symbianCapabilities |= m_mobilePage->networkEnabled()?MobileLibraryParameters::NetworkServices:0;
     }
 
-    if (mlp.type & MobileLibraryParameters::Maemo) {
-        //TODO fill this for Maemo
-    }
     return mlp;
 }
 
diff --git a/src/plugins/qt4projectmanager/wizards/mobilelibraryparameters.cpp b/src/plugins/qt4projectmanager/wizards/mobilelibraryparameters.cpp
index 66d10816fcdf2e2915f9e505277458390db3e3cc..d38b9893bc9e89788b073099cbd69f7f7e5fbb63 100644
--- a/src/plugins/qt4projectmanager/wizards/mobilelibraryparameters.cpp
+++ b/src/plugins/qt4projectmanager/wizards/mobilelibraryparameters.cpp
@@ -103,13 +103,18 @@ void MobileLibraryParameters::writeSymbianProFile(QTextStream &str) const
            "    addFiles.sources = " + fileName + ".dll\n"
            "    addFiles.path = !:/sys/bin\n"
            "    DEPLOYMENT += addFiles\n"
-           "}\n";
+           "}";
 }
 
 void MobileLibraryParameters::writeMaemoProFile(QTextStream &str) const
 {
-    str << "\n"
-           "maemo {\n" //TODO fill it for Maemo
+    str << " else:unix {\n"
+           "    maemo5 {\n"
+           "        target.path = /opt/usr/lib\n"
+           "    } else {\n"
+           "        target.path = /usr/local/lib\n"
+           "    }\n"
+           "    INSTALLS += target\n"
            "}\n";
 }