Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp	(revision 86921)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp	(revision 86922)
@@ -1080,25 +1080,8 @@
     virtual void retranslateUi() /* override */
     {
-        switch (state())
-        {
-            case 0:
-            {
-                setIconText(QApplication::translate("UIActionPool", "Discard"));
-                setName(QApplication::translate("UIActionPool", "D&iscard Saved State..."));
-                setStatusTip(QApplication::translate("UIActionPool", "Discard saved state of selected virtual machines"));
-                setToolTip(simplifyText(text()) + (shortcut().isEmpty() ? QString() : QString(" (%1)").arg(shortcut().toString())));
-                break;
-            }
-            case 1:
-            {
-                setIconText(QApplication::translate("UIActionPool", "Terminate"));
-                setName(QApplication::translate("UIActionPool", "&Terminate Cloud Instance..."));
-                setStatusTip(QApplication::translate("UIActionPool", "Terminate cloud instance of selected virtual machines"));
-                setToolTip(simplifyText(text()) + (shortcut().isEmpty() ? QString() : QString(" (%1)").arg(shortcut().toString())));
-                break;
-            }
-            default:
-                break;
-        }
+        setIconText(QApplication::translate("UIActionPool", "Discard"));
+        setName(QApplication::translate("UIActionPool", "D&iscard Saved State..."));
+        setStatusTip(QApplication::translate("UIActionPool", "Discard saved state of selected virtual machines"));
+        setToolTip(simplifyText(text()) + (shortcut().isEmpty() ? QString() : QString(" (%1)").arg(shortcut().toString())));
     }
 };
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp	(revision 86921)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp	(revision 86922)
@@ -1566,28 +1566,18 @@
     /* Prepare the list of the machines to be discarded/terminated: */
     QStringList machinesToDiscard;
-    QStringList machinesToTerminate;
     QList<UIVirtualMachineItem*> itemsToDiscard;
-    QList<UIVirtualMachineItem*> itemsToTerminate;
     foreach (UIVirtualMachineItem *pItem, items)
     {
         if (isActionEnabled(UIActionIndexMN_M_Group_S_Discard, QList<UIVirtualMachineItem*>() << pItem))
         {
-            if (pItem->itemType() == UIVirtualMachineItemType_Local)
-            {
-                machinesToDiscard << pItem->name();
-                itemsToDiscard << pItem;
-            }
-            else if (pItem->itemType() == UIVirtualMachineItemType_CloudReal)
-            {
-                machinesToTerminate << pItem->name();
-                itemsToTerminate << pItem;
-            }
-        }
-    }
-    AssertMsg(!machinesToDiscard.isEmpty() || !machinesToTerminate.isEmpty(), ("This action should not be allowed!"));
-
-    /* Confirm discarding/terminating: */
-    if (   (machinesToDiscard.isEmpty() || !msgCenter().confirmDiscardSavedState(machinesToDiscard.join(", ")))
-        && (machinesToTerminate.isEmpty() || !msgCenter().confirmTerminateCloudInstance(machinesToTerminate.join(", "))))
+            machinesToDiscard << pItem->name();
+            itemsToDiscard << pItem;
+        }
+    }
+    AssertMsg(!machinesToDiscard.isEmpty(), ("This action should not be allowed!"));
+
+    /* Confirm discarding: */
+    if (   machinesToDiscard.isEmpty()
+        || !msgCenter().confirmDiscardSavedState(machinesToDiscard.join(", ")))
         return;
 
@@ -1609,32 +1599,4 @@
         /* Unlock machine finally: */
         comSession.UnlockMachine();
-    }
-
-    /* For every confirmed item to terminate: */
-    foreach (UIVirtualMachineItem *pItem, itemsToTerminate)
-    {
-        /* Get cloud machine: */
-        AssertPtrReturnVoid(pItem);
-        UIVirtualMachineItemCloud *pCloudItem = pItem->toCloud();
-        AssertPtrReturnVoid(pCloudItem);
-        CCloudMachine comMachine = pCloudItem->machine();
-
-        /* Acquire machine name: */
-        QString strName;
-        if (!cloudMachineName(comMachine, strName))
-            continue;
-
-        /* Prepare terminate cloud instance progress: */
-        CProgress comProgress = comMachine.Terminate();
-        if (!comMachine.isOk())
-        {
-            msgCenter().cannotTerminateCloudInstance(comMachine);
-            continue;
-        }
-
-        /* Show terminate cloud instance progress: */
-        msgCenter().showModalProgressDialog(comProgress, strName, ":/progress_media_delete_90px.png", 0, 0); /// @todo use proper icon
-        if (!comProgress.isOk() || comProgress.GetResultCode() != 0)
-            msgCenter().cannotTerminateCloudInstance(comProgress, strName);
     }
 }
@@ -2827,5 +2789,4 @@
         pMenu->addMenu(actionPool()->action(UIActionIndexMN_M_Group_M_Close)->menu());
         pMenu->addSeparator();
-        pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Discard));
         pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Refresh));
         pMenu->addSeparator();
@@ -2885,5 +2846,4 @@
         pMenu->addMenu(actionPool()->action(UIActionIndexMN_M_Machine_M_Close)->menu());
         pMenu->addSeparator();
-        pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
         pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Refresh));
         pMenu->addSeparator();
@@ -3197,18 +3157,4 @@
     UIVirtualMachineItem *pItem = currentItem();
 
-    /* Discard/Terminate action is deremined by 1st item: */
-    if (   pItem
-        && (   pItem->itemType() == UIVirtualMachineItemType_CloudFake
-            || pItem->itemType() == UIVirtualMachineItemType_CloudReal))
-    {
-        actionPool()->action(UIActionIndexMN_M_Group_S_Discard)->setState(1);
-        actionPool()->action(UIActionIndexMN_M_Machine_S_Discard)->setState(1);
-    }
-    else
-    {
-        actionPool()->action(UIActionIndexMN_M_Group_S_Discard)->setState(0);
-        actionPool()->action(UIActionIndexMN_M_Machine_S_Discard)->setState(0);
-    }
-
     /* Start/Show action is deremined by 1st item: */
     if (pItem && pItem->accessible())
@@ -3400,4 +3346,5 @@
         {
             return !isGroupSavingInProgress() &&
+                   isItemsLocal(items) &&
                    isAtLeastOneItemDiscardable(items) &&
                     (m_pWidget->currentMachineTool() != UIToolType_Snapshots ||
@@ -3465,24 +3412,21 @@
         case UIActionIndexMN_M_Group_M_Close_S_Detach:
         case UIActionIndexMN_M_Machine_M_Close_S_Detach:
-        {
-            return isItemsLocal(items) &&
-                   isActionEnabled(UIActionIndexMN_M_Machine_M_Close, items);
-        }
         case UIActionIndexMN_M_Group_M_Close_S_SaveState:
         case UIActionIndexMN_M_Machine_M_Close_S_SaveState:
         {
-            return isItemsLocal(items) &&
-                   isActionEnabled(UIActionIndexMN_M_Machine_M_Close, items);
+            return    isActionEnabled(UIActionIndexMN_M_Machine_M_Close, items)
+                   && isItemsLocal(items);
         }
         case UIActionIndexMN_M_Group_M_Close_S_Shutdown:
         case UIActionIndexMN_M_Machine_M_Close_S_Shutdown:
         {
-            return isActionEnabled(UIActionIndexMN_M_Machine_M_Close, items) &&
-                   isAtLeastOneItemAbleToShutdown(items);
+            return    isActionEnabled(UIActionIndexMN_M_Machine_M_Close, items)
+                   && isAtLeastOneItemAbleToShutdown(items);
         }
         case UIActionIndexMN_M_Group_M_Close_S_PowerOff:
         case UIActionIndexMN_M_Machine_M_Close_S_PowerOff:
         {
-            return isActionEnabled(UIActionIndexMN_M_Machine_M_Close, items);
+            return    isActionEnabled(UIActionIndexMN_M_Machine_M_Close, items)
+                   && isAtLeastOneItemStarted(items);
         }
         default:
@@ -3641,6 +3585,5 @@
 {
     foreach (UIVirtualMachineItem *pItem, items)
-        if (   (   pItem->isItemSaved()
-                || pItem->itemType() == UIVirtualMachineItemType_CloudReal)
+        if (   pItem->isItemSaved()
             && pItem->isItemEditable())
             return true;
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemCloud.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemCloud.cpp	(revision 86921)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItemCloud.cpp	(revision 86922)
@@ -289,5 +289,7 @@
 {
     return    accessible()
-           && machineState() == KCloudMachineState_Stopped;
+           && itemType() == UIVirtualMachineItemType_CloudReal
+           && (   machineState() == KCloudMachineState_Stopped
+               || machineState() == KCloudMachineState_Running);
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp	(revision 86921)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp	(revision 86922)
@@ -1473,5 +1473,4 @@
         pMenuGroup->addMenu(actionPool()->action(UIActionIndexMN_M_Group_M_Close)->menu());
         pMenuGroup->addSeparator();
-        pMenuGroup->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Discard));
         pMenuGroup->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Refresh));
         pMenuGroup->addSeparator();
@@ -1491,5 +1490,4 @@
         pMenuMachine->addMenu(actionPool()->action(UIActionIndexMN_M_Machine_M_Close)->menu());
         pMenuMachine->addSeparator();
-        pMenuMachine->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
         pMenuMachine->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Refresh));
         pMenuMachine->addSeparator();
