diff --git a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
index 4cce3a656ca5f3df7186380bee96fb1ef6bb63a4..ed771668b3312f9ee3831ebe3ec5845f152b875b 100644
--- a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
+++ b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
@@ -187,6 +187,18 @@ void ActionContainerPrivate::appendGroup(const Id &groupId)
     m_groups.append(Group(groupId));
 }
 
+void ActionContainerPrivate::insertGroup(const Id &before, const Id &groupId)
+{
+    QList<Group>::iterator it = m_groups.begin();
+    while (it != m_groups.end()) {
+        if (it->id == before) {
+            m_groups.insert(it, Group(groupId));
+            break;
+        }
+        ++it;
+    }
+}
+
 QList<Group>::const_iterator ActionContainerPrivate::findGroup(const Id &groupId) const
 {
     QList<Group>::const_iterator it = m_groups.constBegin();
diff --git a/src/plugins/coreplugin/actionmanager/actioncontainer.h b/src/plugins/coreplugin/actionmanager/actioncontainer.h
index c05e53dde713c1bb83b4b7796580eae7236b8360..6335d5a8422201ff8a1368f8ea27e119de7b15fe 100644
--- a/src/plugins/coreplugin/actionmanager/actioncontainer.h
+++ b/src/plugins/coreplugin/actionmanager/actioncontainer.h
@@ -68,6 +68,7 @@ public:
 
     virtual QAction *insertLocation(const Id &group) const = 0;
     virtual void appendGroup(const Id &group) = 0;
+    virtual void insertGroup(const Id &before, const Id &group) = 0;
     virtual void addAction(Command *action, const Id &group = Id()) = 0;
     virtual void addMenu(ActionContainer *menu, const Id &group = Id()) = 0;
     virtual void addMenu(ActionContainer *before, ActionContainer *menu, const Id &group = Id()) = 0;
diff --git a/src/plugins/coreplugin/actionmanager/actioncontainer_p.h b/src/plugins/coreplugin/actionmanager/actioncontainer_p.h
index 2b6edf43ec717c6d0dba31a8a7e88146d8b729a5..1046e324643567ae4b52a5f235d1c398ead0124d 100644
--- a/src/plugins/coreplugin/actionmanager/actioncontainer_p.h
+++ b/src/plugins/coreplugin/actionmanager/actioncontainer_p.h
@@ -61,6 +61,7 @@ public:
 
     QAction *insertLocation(const Id &groupId) const;
     void appendGroup(const Id &id);
+    void insertGroup(const Id &before, const Id &groupId);
     void addAction(Command *action, const Id &group = Id());
     void addMenu(ActionContainer *menu, const Id &group = Id());
     void addMenu(ActionContainer *before, ActionContainer *menu, const Id &group = Id());