Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.cpp	(revision 75092)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.cpp	(revision 75093)
@@ -144,4 +144,6 @@
                     /* Configure pane: */
                     m_pPaneSnapshots->setProperty("ToolType", QVariant::fromValue(UIToolType_Snapshots));
+                    connect(m_pPaneSnapshots, &UISnapshotPane::sigCurrentItemChange,
+                            this, &UIToolPaneMachine::sigCurrentSnapshotItemChange);
 
                     /* Add into layout: */
@@ -246,4 +248,11 @@
 }
 
+bool UIToolPaneMachine::isCurrentStateItemSelected() const
+{
+    if (!m_pPaneSnapshots)
+        return false;
+    return m_pPaneSnapshots->isCurrentStateItemSelected();
+}
+
 void UIToolPaneMachine::prepare()
 {
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.h	(revision 75092)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIToolPaneMachine.h	(revision 75093)
@@ -54,4 +54,7 @@
     void sigLinkClicked(const QString &strCategory, const QString &strControl, const QUuid &uId);
 
+    /** Notifies listeners about current Snapshot pane item change. */
+    void sigCurrentSnapshotItemChange();
+
 public:
 
@@ -81,4 +84,7 @@
     /** Defines the @a comMachine object. */
     void setMachine(const CMachine &comMachine);
+
+    /** Returns whether current-state item of Snapshot pane is selected. */
+    bool isCurrentStateItemSelected() const;
 
 private:
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp	(revision 75092)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp	(revision 75093)
@@ -392,4 +392,9 @@
         default: break;
     }
+}
+
+void UIVirtualBoxManager::sltCurrentSnapshotItemChange()
+{
+    updateActionsAppearance();
 }
 
@@ -1845,4 +1850,6 @@
         connect(m_pWidget, &UIVirtualBoxManagerWidget::sigCloudProfileManagerChange,
                 this, &UIVirtualBoxManager::sigCloudProfileManagerChange);
+        connect(m_pWidget, &UIVirtualBoxManagerWidget::sigCurrentSnapshotItemChange,
+                this, &UIVirtualBoxManager::sltCurrentSnapshotItemChange);
         setCentralWidget(m_pWidget);
     }
@@ -2305,5 +2312,7 @@
             return !isGroupSavingInProgress() &&
                    items.size() == 1 &&
-                   pItem->configurationAccessLevel() != ConfigurationAccessLevel_Null;
+                   pItem->configurationAccessLevel() != ConfigurationAccessLevel_Null &&
+                   (m_pWidget->currentMachineTool() != UIToolType_Snapshots ||
+                    m_pWidget->isCurrentStateItemSelected());
         }
         case UIActionIndexST_M_Machine_S_Clone:
@@ -2335,5 +2344,7 @@
         {
             return !isGroupSavingInProgress() &&
-                   isAtLeastOneItemCanBeStartedOrShown(items);
+                   isAtLeastOneItemCanBeStartedOrShown(items) &&
+                    (m_pWidget->currentMachineTool() != UIToolType_Snapshots ||
+                     m_pWidget->isCurrentStateItemSelected());
         }
         case UIActionIndexST_M_Group_S_Discard:
@@ -2341,5 +2352,7 @@
         {
             return !isGroupSavingInProgress() &&
-                   isAtLeastOneItemDiscardable(items);
+                   isAtLeastOneItemDiscardable(items) &&
+                    (m_pWidget->currentMachineTool() != UIToolType_Snapshots ||
+                     m_pWidget->isCurrentStateItemSelected());
         }
         case UIActionIndexST_M_Group_S_ShowLogDialog:
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h	(revision 75092)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h	(revision 75093)
@@ -121,4 +121,7 @@
         /** Handles singal about Tool type change.  */
         void sltHandleToolTypeChange();
+
+        /** Handles current snapshot item change. */
+        void sltCurrentSnapshotItemChange();
     /** @} */
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp	(revision 75092)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp	(revision 75093)
@@ -168,4 +168,9 @@
 }
 
+bool UIVirtualBoxManagerWidget::isCurrentStateItemSelected() const
+{
+    return m_pPaneToolsMachine->isCurrentStateItemSelected();
+}
+
 void UIVirtualBoxManagerWidget::sltHandleContextMenuRequest(const QPoint &position)
 {
@@ -454,4 +459,7 @@
                         if (m_pPaneToolsMachine)
                         {
+                            connect(m_pPaneToolsMachine, &UIToolPaneMachine::sigCurrentSnapshotItemChange,
+                                    this, &UIVirtualBoxManagerWidget::sigCurrentSnapshotItemChange);
+
                             /* Add into stack: */
                             m_pStackedWidget->addWidget(m_pPaneToolsMachine);
@@ -657,9 +665,4 @@
                 case UIToolType_Snapshots:
                 {
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_New));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Settings));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Discard));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Machine_M_StartOrShow));
-                    m_pToolBar->addSeparator();
                     m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Snapshot_S_Take));
                     m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Snapshot_S_Delete));
@@ -667,13 +670,12 @@
                     m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Snapshot_T_Properties));
                     m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Snapshot_S_Clone));
+                    m_pToolBar->addSeparator();
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Settings));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Discard));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Machine_M_StartOrShow));
                     break;
                 }
                 case UIToolType_Logs:
                 {
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_New));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Settings));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Discard));
-                    m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Machine_M_StartOrShow));
-                    m_pToolBar->addSeparator();
                     m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_S_Save));
                     m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_T_Find));
@@ -682,4 +684,8 @@
                     m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_T_Settings));
                     m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_S_Refresh));
+                    m_pToolBar->addSeparator();
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Settings));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Discard));
+                    m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Machine_M_StartOrShow));
                     break;
                 }
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.h	(revision 75092)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.h	(revision 75093)
@@ -59,4 +59,7 @@
     /** Notifies listeners about Cloud Profile Manager change. */
     void sigCloudProfileManagerChange();
+
+    /** Notifies listeners about current Snapshots pane item change. */
+    void sigCurrentSnapshotItemChange();
 
 public:
@@ -113,4 +116,10 @@
     /** @} */
 
+    /** @name Snapshot pane stuff.
+      * @{ */
+        /** Returns whether current-state item of Snapshot pane is selected. */
+        bool isCurrentStateItemSelected() const;
+    /** @} */
+
 public slots:
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/snapshots/UISnapshotPane.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/snapshots/UISnapshotPane.cpp	(revision 75092)
+++ trunk/src/VBox/Frontends/VirtualBox/src/snapshots/UISnapshotPane.cpp	(revision 75093)
@@ -506,4 +506,9 @@
 }
 
+bool UISnapshotPane::isCurrentStateItemSelected() const
+{
+    return m_pCurrentStateItem && m_pSnapshotTree->currentItem() == m_pCurrentStateItem;
+}
+
 void UISnapshotPane::retranslateUi()
 {
@@ -1051,4 +1056,7 @@
             m_pDetailsWidget->setData(*pSnapshotItem, pSnapshotItem->snapshot());
     }
+
+    /* Notify listeners: */
+    emit sigCurrentItemChange();
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/snapshots/UISnapshotPane.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/snapshots/UISnapshotPane.h	(revision 75092)
+++ trunk/src/VBox/Frontends/VirtualBox/src/snapshots/UISnapshotPane.h	(revision 75093)
@@ -55,4 +55,9 @@
     Q_OBJECT;
 
+signals:
+
+    /** Notifies listeners about current item change. */
+    void sigCurrentItemChange();
+
 public:
 
@@ -67,4 +72,7 @@
     /** Returns cached snapshot-item icon depending on @a fOnline flag. */
     const QIcon *snapshotItemIcon(bool fOnline) const;
+
+    /** Returns whether "current state" item selected. */
+    bool isCurrentStateItemSelected() const;
 
 protected:
