Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp	(revision 84541)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp	(revision 84542)
@@ -791,5 +791,5 @@
 void UIVirtualBoxManager::sltPerformMachineMoveToNewGroup()
 {
-    m_pWidget->moveMachineToNewGroup();
+    m_pWidget->moveMachineToGroup();
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp	(revision 84541)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp	(revision 84542)
@@ -131,7 +131,7 @@
 }
 
-void UIVirtualBoxManagerWidget::moveMachineToNewGroup()
-{
-    m_pPaneChooser->moveMachineToNewGroup();
+void UIVirtualBoxManagerWidget::moveMachineToGroup(const QString &strName /* = QString() */)
+{
+    m_pPaneChooser->moveMachineToGroup(strName);
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.h	(revision 84541)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.h	(revision 84542)
@@ -146,6 +146,6 @@
         /** Removes machine. */
         void removeMachine();
-        /** Moves machine to a new group. */
-        void moveMachineToNewGroup();
+        /** Moves machine to a group with certain @a strName. */
+        void moveMachineToGroup(const QString &strName = QString());
         /** 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 84541)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.cpp	(revision 84542)
@@ -131,8 +131,8 @@
 }
 
-void UIChooser::moveMachineToNewGroup()
-{
-    AssertPtrReturnVoid(model());
-    model()->moveSelectedMachineItemsToNewGroupItem();
+void UIChooser::moveMachineToGroup(const QString &strName)
+{
+    AssertPtrReturnVoid(model());
+    model()->moveSelectedMachineItemsToGroupItem(strName);
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.h	(revision 84541)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.h	(revision 84542)
@@ -140,6 +140,6 @@
         /** Removes machine. */
         void removeMachine();
-        /** Moves machine to a new group. */
-        void moveMachineToNewGroup();
+        /** Moves machine to a group with certain @a strName. */
+        void moveMachineToGroup(const QString &strName);
         /** Refreshes machine. */
         void refreshMachine();
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp	(revision 84541)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp	(revision 84542)
@@ -735,14 +735,34 @@
 }
 
-void UIChooserModel::moveSelectedMachineItemsToNewGroupItem()
-{
-    /* Create new group node in the current root: */
-    UIChooserNodeGroup *pNewGroupNode = new UIChooserNodeGroup(invisibleRoot(),
-                                                               false /* favorite */,
-                                                               invisibleRoot()->nodes().size() /* position */,
-                                                               uniqueGroupName(invisibleRoot()),
-                                                               UIChooserNodeGroupType_Local,
-                                                               true /* opened */);
-    UIChooserItemGroup *pNewGroupItem = new UIChooserItemGroup(root(), pNewGroupNode);
+void UIChooserModel::moveSelectedMachineItemsToGroupItem(const QString &strName /* = QString() */)
+{
+    /* Prepare target group pointers: */
+    UIChooserNodeGroup *pTargetGroupNode = 0;
+    UIChooserItemGroup *pTargetGroupItem = 0;
+    if (strName.isNull())
+    {
+        /* Create new group node in the current root: */
+        pTargetGroupNode = new UIChooserNodeGroup(invisibleRoot(),
+                                                  false /* favorite */,
+                                                  invisibleRoot()->nodes().size() /* position */,
+                                                  uniqueGroupName(invisibleRoot()),
+                                                  UIChooserNodeGroupType_Local,
+                                                  true /* opened */);
+        pTargetGroupItem = new UIChooserItemGroup(root(), pTargetGroupNode);
+    }
+    else
+    {
+        /* Search for existing group with certain name: */
+        UIChooserItem *pTargetItem = root()->searchForItem(strName,
+                                                           UIChooserItemSearchFlag_LocalGroup |
+                                                           UIChooserItemSearchFlag_ExactId);
+        AssertPtrReturnVoid(pTargetItem);
+        pTargetGroupItem = pTargetItem->toGroupItem();
+        UIChooserNode *pTargetNode = pTargetItem->node();
+        AssertPtrReturnVoid(pTargetNode);
+        pTargetGroupNode = pTargetNode->toGroupNode();
+    }
+    AssertPtrReturnVoid(pTargetGroupNode);
+    AssertPtrReturnVoid(pTargetGroupItem);
 
     /* For each of currently selected-items: */
@@ -762,8 +782,8 @@
                 busyGroupNames << pItem->name();
                 /* Copy or move group-item: */
-                UIChooserNodeGroup *pNewGroupSubNode = new UIChooserNodeGroup(pNewGroupNode,
+                UIChooserNodeGroup *pNewGroupSubNode = new UIChooserNodeGroup(pTargetGroupNode,
                                                                               pItem->node()->toGroupNode(),
-                                                                              pNewGroupNode->nodes().size());
-                new UIChooserItemGroup(pNewGroupItem, pNewGroupSubNode);
+                                                                              pTargetGroupNode->nodes().size());
+                new UIChooserItemGroup(pTargetGroupItem, pNewGroupSubNode);
                 delete pItem->node();
                 break;
@@ -777,8 +797,8 @@
                 busyMachineNames << pItem->name();
                 /* Copy or move machine-item: */
-                UIChooserNodeMachine *pNewMachineSubNode = new UIChooserNodeMachine(pNewGroupNode,
+                UIChooserNodeMachine *pNewMachineSubNode = new UIChooserNodeMachine(pTargetGroupNode,
                                                                                     pItem->node()->toMachineNode(),
-                                                                                    pNewGroupNode->nodes().size());
-                new UIChooserItemMachine(pNewGroupItem, pNewMachineSubNode);
+                                                                                    pTargetGroupNode->nodes().size());
+                new UIChooserItemMachine(pTargetGroupItem, pNewMachineSubNode);
                 delete pItem->node();
                 break;
@@ -790,5 +810,5 @@
     wipeOutEmptyGroups();
     updateTreeForMainRoot();
-    setSelectedItem(pNewGroupItem);
+    setSelectedItem(pTargetGroupItem);
     saveGroups();
 }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.h	(revision 84541)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.h	(revision 84542)
@@ -222,6 +222,9 @@
         /** Removes selected machine items. */
         void removeSelectedMachineItems();
-        /** Moves selected machine items to new group item. */
-        void moveSelectedMachineItemsToNewGroupItem();
+        /** Moves selected machine items to group item.
+          * @param  strName  Holds the group item name to move items to, if
+          *                  that name isn't specified, new top-level group
+          *                  item will be created. */
+        void moveSelectedMachineItemsToGroupItem(const QString &strName);
         /** Starts or shows selected items. */
         void startOrShowSelectedItems();
