Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.cpp	(revision 42552)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.cpp	(revision 42553)
@@ -32,4 +32,6 @@
 #include "CMachineRegisteredEvent.h"
 #include "CSessionStateChangedEvent.h"
+#include "CSnapshotTakenEvent.h"
+#include "CSnapshotDeletedEvent.h"
 #include "CSnapshotChangedEvent.h"
 #include "CMousePointerShapeChangedEvent.h"
@@ -128,8 +130,16 @@
             break;
         }
-        /* Not used:
         case KVBoxEventType_OnSnapshotTaken:
+        {
+            CSnapshotTakenEvent es(pEvent);
+            emit sigSnapshotChange(es.GetMachineId(), es.GetSnapshotId());
+            break;
+        }
         case KVBoxEventType_OnSnapshotDeleted:
-         */
+        {
+            CSnapshotDeletedEvent es(pEvent);
+            emit sigSnapshotChange(es.GetMachineId(), es.GetSnapshotId());
+            break;
+        }
         case KVBoxEventType_OnSnapshotChanged:
         {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 42552)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 42553)
@@ -135,4 +135,18 @@
 }
 
+void UISelectorWindow::sltSnapshotChanged(QString strId)
+{
+    /* Get current item: */
+    UIVMItem *pCurrentItem = currentItem();
+
+    /* Make sure current item present: */
+    if (!pCurrentItem)
+        return;
+
+    /* If signal is for current item: */
+    if (pCurrentItem->id() == strId)
+        m_pVMDesktop->updateSnapshots(pCurrentItem, pCurrentItem->machine());
+}
+
 void UISelectorWindow::sltDetailsViewIndexChanged(int iWidgetIndex)
 {
@@ -784,8 +798,4 @@
             m_pContainer->setCurrentWidget(m_pDetails);
 
-        CMachine m = pItem->machine();
-        QList<CMachine> machines;
-        for (int i = 0; i < items.size(); ++i)
-            machines << items[i]->machine();
         KMachineState state = pItem->machineState();
 
@@ -793,5 +803,5 @@
             m_pDetails->setItems(currentItems());
         if (fRefreshSnapshots)
-            m_pVMDesktop->updateSnapshots(pItem, m);
+            m_pVMDesktop->updateSnapshots(pItem, pItem->machine());
 
         /* Update the Start button action appearance: */
@@ -1451,4 +1461,7 @@
     connect(&vboxGlobal(), SIGNAL(sigTrayIconShow(bool)), this, SLOT(sltTrayIconShow(bool)));
 #endif /* VBOX_GUI_WITH_SYSTRAY */
+
+    /* Global event handlers: */
+    connect(gVBoxEvents, SIGNAL(sigSnapshotChange(QString, QString)), this, SLOT(sltSnapshotChanged(QString)));
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.h	(revision 42552)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.h	(revision 42553)
@@ -62,4 +62,7 @@
 
 private slots:
+
+    /* Handler: Snapshot-view stuff: */
+    void sltSnapshotChanged(QString strId);
 
     /* Handler: Details-view stuff: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVirtualBoxEventHandler.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVirtualBoxEventHandler.cpp	(revision 42552)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVirtualBoxEventHandler.cpp	(revision 42553)
@@ -61,4 +61,6 @@
         << KVBoxEventType_OnMachineRegistered
         << KVBoxEventType_OnSessionStateChanged
+        << KVBoxEventType_OnSnapshotTaken
+        << KVBoxEventType_OnSnapshotDeleted
         << KVBoxEventType_OnSnapshotChanged;
 
