diff --git a/src/plugins/projectexplorer/miniprojecttargetselector.cpp b/src/plugins/projectexplorer/miniprojecttargetselector.cpp
index bd93b9e5d7ccab45514b9489777cdffaee33ddc4..9af697a0d64873aa372d9483083ef8314eae532f 100644
--- a/src/plugins/projectexplorer/miniprojecttargetselector.cpp
+++ b/src/plugins/projectexplorer/miniprojecttargetselector.cpp
@@ -440,9 +440,17 @@ void MiniProjectTargetSelector::addProject(ProjectExplorer::Project* project)
     ProjectListWidget *targetList = new ProjectListWidget(project);
     targetList->setStyleSheet(QString::fromLatin1("QListWidget { background: %1; border: none; }")
                               .arg(QColor(70, 70, 70).name()));
-    int pos = m_widgetStack->addWidget(targetList);
 
-    m_projectsBox->addItem(project->displayName(), QVariant::fromValue(project));
+    m_ignoreIndexChange = true;
+
+    int pos = 0;
+    for (int i=0; i < m_projectsBox->count(); ++i)
+        if (m_projectsBox->itemText(i) > project->displayName())
+            pos = i;
+
+    m_widgetStack->insertWidget(pos, targetList);
+
+    m_projectsBox->insertItem(pos, project->displayName(), QVariant::fromValue(project));
 
     connect(project, SIGNAL(activeTargetChanged(ProjectExplorer::Target*)),
             SLOT(updateAction()));
@@ -459,6 +467,8 @@ void MiniProjectTargetSelector::addProject(ProjectExplorer::Project* project)
         m_widgetStack->setCurrentIndex(pos);
     }
 
+    m_ignoreIndexChange = false;
+
     foreach (Target *t, project->targets())
         addTarget(t, t == project->activeTarget());