diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.cpp
index eb13bb893331b7877d6f6beb328e6a6ff0e86ee4..889076d828ae930471449b889199e771d2d7fcdd 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.cpp
@@ -149,16 +149,10 @@ void MaemoDeployStep::getDeployTimesFromMap(const QVariantMap &map)
 
 const MaemoPackageCreationStep *MaemoDeployStep::packagingStep() const
 {
-    const QList<ProjectExplorer::BuildStep *> &buildSteps
-        = buildConfiguration()->steps(ProjectExplorer::BuildStep::Deploy);
-    for (int i = buildSteps.count() - 1; i >= 0; --i) {
-        const MaemoPackageCreationStep * const pStep
-                = qobject_cast<MaemoPackageCreationStep *>(buildSteps.at(i));
-        if (pStep)
-            return pStep;
-    }
-    Q_ASSERT(!"Impossible: Maemo run configuration without packaging step.");
-    return 0;
+    const MaemoPackageCreationStep * const step
+        = MaemoGlobal::buildStep<MaemoPackageCreationStep>(buildConfiguration());
+    Q_ASSERT(step && "Impossible: Maemo build configuration without packaging step.");
+    return step;
 }
 
 void MaemoDeployStep::raiseError(const QString &errorString)
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp
index 3a6f7853511d49624cf6156e6083a945b3a02398..9a797fd7ad9883490538331d0f0324a7854c96ac 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp
@@ -29,6 +29,8 @@
 
 #include "maemoglobal.h"
 
+#include <QtCore/QString>
+
 namespace Qt4ProjectManager {
 namespace Internal {
 
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h
index 3d23e6eef1884c6ca84ff0db27895551954710e3..7a8b2ff8df9838a23605c051ee55b8ae7a607eea 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h
@@ -32,6 +32,8 @@
 
 #include <projectexplorer/buildconfiguration.h>
 
+#include <QtCore/QList>
+
 QT_BEGIN_NAMESPACE
 class QString;
 QT_END_NAMESPACE
@@ -44,6 +46,17 @@ class MaemoGlobal
 public:
     static QString homeDirOnDevice(const QString &uname);
     static QString remoteSudo();
+
+    template<class T> static T *buildStep(const ProjectExplorer::BuildConfiguration *bc)
+    {
+        const QList<ProjectExplorer::BuildStep *> &buildSteps
+                = bc->steps(ProjectExplorer::BuildStep::Deploy);
+        for (int i = buildSteps.count() - 1; i >= 0; --i) {
+            if (T * const step = qobject_cast<T *>(buildSteps.at(i)))
+                return step;
+        }
+        return 0;
+    }
 };
 
 } // namespace Internal
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp
index 1ab2ded58e7b6ce7ea7be61701ea11a1b12bdaff..3997dd9a9e64a4b6a1b97859e798a3110fe52fa4 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp
@@ -30,6 +30,7 @@
 #include "maemorunconfiguration.h"
 
 #include "maemodeploystep.h"
+#include "maemoglobal.h"
 #include "maemopackagecreationstep.h"
 #include "maemorunconfigurationwidget.h"
 #include "maemotoolchain.h"
@@ -171,30 +172,18 @@ const QString MaemoRunConfiguration::gdbCmd() const
 
 const MaemoPackageCreationStep *MaemoRunConfiguration::packageStep() const
 {
-    const QList<ProjectExplorer::BuildStep *> &buildSteps
-        = activeQt4BuildConfiguration()->steps(ProjectExplorer::BuildStep::Deploy);
-    for (int i = buildSteps.count() - 1; i >= 0; --i) {
-        const MaemoPackageCreationStep * const pStep
-            = qobject_cast<MaemoPackageCreationStep *>(buildSteps.at(i));
-        if (pStep)
-            return pStep;
-    }
-    Q_ASSERT(!"Impossible: Maemo run configuration without packaging step.");
-    return 0;
+    const MaemoPackageCreationStep * const step
+        = MaemoGlobal::buildStep<MaemoPackageCreationStep>(activeQt4BuildConfiguration());
+    Q_ASSERT(step && "Impossible: Maemo build configuration without packaging step.");
+    return step;
 }
 
 MaemoDeployStep *MaemoRunConfiguration::deployStep() const
 {
-    const QList<ProjectExplorer::BuildStep *> &buildSteps
-        = activeQt4BuildConfiguration()->steps(ProjectExplorer::BuildStep::Deploy);
-    for (int i = buildSteps.count() - 1; i >= 0; --i) {
-        MaemoDeployStep * const step
-            = qobject_cast<MaemoDeployStep*>(buildSteps.at(i));
-        if (step)
-            return step;
-    }
-    Q_ASSERT(!"Impossible: Maemo run configuration without deploy step.");
-    return 0;
+    MaemoDeployStep * const step
+        = MaemoGlobal::buildStep<MaemoDeployStep>(activeQt4BuildConfiguration());
+    Q_ASSERT(step && !"Impossible: Maemo build configuration without deploy step.");
+    return step;
 }
 
 QString MaemoRunConfiguration::maddeRoot() const