Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp	(revision 84546)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp	(revision 84557)
@@ -139,4 +139,9 @@
 {
     return m_pPaneChooser->possibleGroupsForMachineToMove(uId);
+}
+
+QStringList UIVirtualBoxManagerWidget::possibleGroupsForGroupToMove(const QString &strFullName)
+{
+    return m_pPaneChooser->possibleGroupsForGroupToMove(strFullName);
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.h	(revision 84546)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.h	(revision 84557)
@@ -148,6 +148,8 @@
         /** Moves machine to a group with certain @a strName. */
         void moveMachineToGroup(const QString &strName = QString());
-        /** Returns possible groups for VM with passed @a uId to move to. */
+        /** Returns possible groups for machine with passed @a uId to move to. */
         QStringList possibleGroupsForMachineToMove(const QUuid &uId);
+        /** Returns possible groups for group with passed @a strFullName to move to. */
+        QStringList possibleGroupsForGroupToMove(const QString &strFullName);
         /** Refreshes machine. */
         void refreshMachine();
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.cpp	(revision 84546)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.cpp	(revision 84557)
@@ -141,4 +141,10 @@
     AssertPtrReturn(model(), QStringList());
     return model()->possibleGroupNodeNamesForMachineNodeToMove(uId);
+}
+
+QStringList UIChooser::possibleGroupsForGroupToMove(const QString &strFullName)
+{
+    AssertPtrReturn(model(), QStringList());
+    return model()->possibleGroupNodeNamesForGroupNodeToMove(strFullName);
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.h	(revision 84546)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.h	(revision 84557)
@@ -142,6 +142,8 @@
         /** Moves machine to a group with certain @a strName. */
         void moveMachineToGroup(const QString &strName);
-        /** Returns possible groups for VM with passed @a uId to move to. */
+        /** Returns possible groups for machine with passed @a uId to move to. */
         QStringList possibleGroupsForMachineToMove(const QUuid &uId);
+        /** Returns possible groups for group with passed @a strFullName to move to. */
+        QStringList possibleGroupsForGroupToMove(const QString &strFullName);
         /** Refreshes machine. */
         void refreshMachine();
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserAbstractModel.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserAbstractModel.cpp	(revision 84546)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserAbstractModel.cpp	(revision 84557)
@@ -526,4 +526,16 @@
     /* Return group nodes starting from root one: */
     return gatherPossibleGroupNodeNames(invisibleRoot(), machineNodes);
+}
+
+QStringList UIChooserAbstractModel::possibleGroupNodeNamesForGroupNodeToMove(const QString &strFullName)
+{
+    /* Search for all the group nodes with passed full-name: */
+    QList<UIChooserNode*> groupNodes;
+    invisibleRoot()->searchForNodes(strFullName,
+                                    UIChooserItemSearchFlag_LocalGroup | UIChooserItemSearchFlag_ExactId,
+                                    groupNodes);
+
+    /* Return group nodes starting from root one: */
+    return gatherPossibleGroupNodeNames(invisibleRoot(), groupNodes);
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserAbstractModel.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserAbstractModel.h	(revision 84546)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserAbstractModel.h	(revision 84557)
@@ -80,6 +80,8 @@
         void wipeOutEmptyGroups();
 
-        /** Returns possible group node names for VM node with passed @a uId to move to. */
+        /** Returns possible group node names for machine node with passed @a uId to move to. */
         QStringList possibleGroupNodeNamesForMachineNodeToMove(const QUuid &uId);
+        /** Returns possible group node names for group node with passed @a strFullName to move to. */
+        QStringList possibleGroupNodeNamesForGroupNodeToMove(const QString &strFullName);
 
         /** Generates unique group name traversing recursively starting from @a pRoot. */
