Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp	(revision 84545)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp	(revision 84546)
@@ -769,4 +769,5 @@
     QStringList busyGroupNames;
     QStringList busyMachineNames;
+    QList<UIChooserItem*> copiedItems;
     foreach (UIChooserItem *pItem, selectedItems())
     {
@@ -785,5 +786,5 @@
                                                                               pItem->node()->toGroupNode(),
                                                                               pTargetGroupNode->nodes().size());
-                new UIChooserItemGroup(pTargetGroupItem, pNewGroupSubNode);
+                copiedItems << new UIChooserItemGroup(pTargetGroupItem, pNewGroupSubNode);
                 delete pItem->node();
                 break;
@@ -800,5 +801,5 @@
                                                                                     pItem->node()->toMachineNode(),
                                                                                     pTargetGroupNode->nodes().size());
-                new UIChooserItemMachine(pTargetGroupItem, pNewMachineSubNode);
+                copiedItems << new UIChooserItemMachine(pTargetGroupItem, pNewMachineSubNode);
                 delete pItem->node();
                 break;
@@ -810,5 +811,27 @@
     wipeOutEmptyGroups();
     updateTreeForMainRoot();
-    setSelectedItem(pTargetGroupItem);
+
+    /* Check if we can select copied items: */
+    QList<UIChooserItem*> itemsToSelect;
+    foreach (UIChooserItem *pCopiedItem, copiedItems)
+        if (navigationItems().contains(pCopiedItem))
+            itemsToSelect << pCopiedItem;
+    if (!itemsToSelect.isEmpty())
+    {
+        setSelectedItems(itemsToSelect);
+        setCurrentItem(firstSelectedItem());
+    }
+    else
+    {
+        /* Otherwise check if we can select one of our parents: */
+        UIChooserItem *pItemToSelect = pTargetGroupItem;
+        while (   !navigationItems().contains(pItemToSelect)
+               && pItemToSelect->parentItem() != root())
+            pItemToSelect = pItemToSelect->parentItem();
+        if (navigationItems().contains(pItemToSelect))
+            setSelectedItem(pItemToSelect);
+    }
+
+    /* Save groups finally: */
     saveGroups();
 }
