diff --git a/src/plugins/debugger/debuggermainwindow.cpp b/src/plugins/debugger/debuggermainwindow.cpp
index f3bc617d10e5aa0898aec700c6bf58277b0378dc..54b3afabff6a46eab682ddcae681e00824112a8a 100644
--- a/src/plugins/debugger/debuggermainwindow.cpp
+++ b/src/plugins/debugger/debuggermainwindow.cpp
@@ -136,6 +136,7 @@ public:
     DebuggerLanguages m_engineDebugLanguages;
 
     ActionContainer *m_viewsMenu;
+    QList<Command *> m_menuCommandsToAdd;
 
     Project *m_previousProject;
     Target *m_previousTarget;
@@ -321,7 +322,8 @@ void DebuggerMainWindowPrivate::createViewsMenuItems()
         Core::Id("Debugger.Views.OpenMemoryEditor"),
         debugcontext);
     cmd->setAttribute(Command::CA_Hide);
-    m_viewsMenu->addAction(cmd);
+    m_viewsMenu->addAction(cmd, Core::Constants::G_DEFAULT_THREE);
+
     cmd = am->registerAction(q->menuSeparator1(),
         Core::Id("Debugger.Views.Separator1"), debugcontext);
     cmd->setAttribute(Command::CA_Hide);
@@ -429,7 +431,7 @@ QDockWidget *DebuggerMainWindow::createDockWidget(const DebuggerLanguage &langua
     Command *cmd = am->registerAction(toggleViewAction,
              Core::Id(QLatin1String("Debugger.") + widget->objectName()), globalContext);
     cmd->setAttribute(Command::CA_Hide);
-    d->m_viewsMenu->addAction(cmd);
+    d->m_menuCommandsToAdd.append(cmd);
 
     dockWidget->installEventFilter(&d->m_resizeEventFilter);
 
@@ -443,6 +445,19 @@ QDockWidget *DebuggerMainWindow::createDockWidget(const DebuggerLanguage &langua
     return dockWidget;
 }
 
+static bool sortCommands(Command *cmd1, Command *cmd2)
+{
+    return cmd1->action()->text() < cmd2->action()->text();
+}
+
+void DebuggerMainWindow::addStagedMenuEntries()
+{
+    qSort(d->m_menuCommandsToAdd.begin(), d->m_menuCommandsToAdd.end(), &sortCommands);
+    foreach (Command *cmd, d->m_menuCommandsToAdd)
+        d->m_viewsMenu->addAction(cmd);
+    d->m_menuCommandsToAdd.clear();
+}
+
 QWidget *DebuggerMainWindow::createContents(IMode *mode)
 {
     ICore *core = ICore::instance();
diff --git a/src/plugins/debugger/debuggermainwindow.h b/src/plugins/debugger/debuggermainwindow.h
index ac5f8ee8f2a1d1dba6c735329d0406a2e8318249..bca47b164544e616cc6311f677d964c5fc6e952a 100644
--- a/src/plugins/debugger/debuggermainwindow.h
+++ b/src/plugins/debugger/debuggermainwindow.h
@@ -73,6 +73,7 @@ public:
 
     // Dockwidgets are registered to the main window.
     QDockWidget *createDockWidget(const DebuggerLanguage &language, QWidget *widget);
+    void addStagedMenuEntries();
 
     QWidget *createContents(Core::IMode *mode);
     QMenu *createPopupMenu();
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 51b2ee42d5f262cfc9659750fbfa0506afe66392..974ed60d0aa9ae0172f89d163570105dd66f847f 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -3025,6 +3025,8 @@ void DebuggerPluginPrivate::extensionsInitialized()
     dock = m_mainWindow->createDockWidget(CppLanguage, localsAndWatchers);
     dock->setProperty(DOCKWIDGET_DEFAULT_AREA, Qt::RightDockWidgetArea);
 
+    m_mainWindow->addStagedMenuEntries();
+
     // Do not fail to load the whole plugin if something goes wrong here.
     QString errorMessage;
     if (!parseArguments(m_arguments, &m_cmdLineEnabledEngines, &errorMessage)) {