Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.cpp	(revision 55358)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.cpp	(revision 55359)
@@ -35,4 +35,5 @@
 # include "CSnapshotDeletedEvent.h"
 # include "CSnapshotChangedEvent.h"
+# include "CSnapshotRestoredEvent.h"
 # include "CExtraDataCanChangeEvent.h"
 # include "CExtraDataChangedEvent.h"
@@ -119,4 +120,10 @@
             break;
         }
+        case KVBoxEventType_OnSnapshotRestored:
+        {
+            CSnapshotRestoredEvent es(pEvent);
+            emit sigSnapshotRestore(es.GetMachineId(), es.GetSnapshotId());
+            break;
+        }
 //        case KVBoxEventType_OnMediumRegistered:
 //        case KVBoxEventType_OnGuestPropertyChange:
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.h	(revision 55358)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.h	(revision 55359)
@@ -64,4 +64,6 @@
     /** Notifies about snapshot with @a strSnapshotId was changed for the machine with @a strId. */
     void sigSnapshotChange(QString strId, QString strSnapshotId);
+    /** Notifies about snapshot with @a strSnapshotId was restored for the machine with @a strId. */
+    void sigSnapshotRestore(QString strId, QString strSnapshotId);
 
     /** Notifies about extra-data of the machine with @a strId can be changed for the key @a strKey to value @a strValue. */
Index: trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumEnumerator.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumEnumerator.cpp	(revision 55358)
+++ trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumEnumerator.cpp	(revision 55359)
@@ -81,4 +81,5 @@
     connect(gVBoxEvents, SIGNAL(sigSnapshotDelete(QString, QString)), this, SLOT(sltHandleSnapshotDeleted(QString, QString)));
     connect(gVBoxEvents, SIGNAL(sigSnapshotChange(QString, QString)), this, SLOT(sltHandleMachineUpdate(QString)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotRestore(QString, QString)), this, SLOT(sltHandleSnapshotDeleted(QString, QString)));
     connect(gVBoxEvents, SIGNAL(sigMachineRegistered(QString, bool)), this, SLOT(sltHandleMachineRegistration(QString, bool)));
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 55358)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 55359)
@@ -1448,4 +1448,5 @@
     connect(gVBoxEvents, SIGNAL(sigSnapshotDelete(QString, QString)), this, SLOT(sltSnapshotChanged(QString)));
     connect(gVBoxEvents, SIGNAL(sigSnapshotChange(QString, QString)), this, SLOT(sltSnapshotChanged(QString)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotRestore(QString, QString)), this, SLOT(sltSnapshotChanged(QString)));
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVirtualBoxEventHandler.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVirtualBoxEventHandler.cpp	(revision 55358)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVirtualBoxEventHandler.cpp	(revision 55359)
@@ -88,5 +88,6 @@
         << KVBoxEventType_OnSnapshotTaken
         << KVBoxEventType_OnSnapshotDeleted
-        << KVBoxEventType_OnSnapshotChanged;
+        << KVBoxEventType_OnSnapshotChanged
+        << KVBoxEventType_OnSnapshotRestored;
     eventSourceVirtualBox.RegisterListener(m_mainEventListener, vboxEvents, TRUE);
     AssertWrapperOk(eventSourceVirtualBox);
@@ -117,4 +118,7 @@
             this, SIGNAL(sigSnapshotChange(QString, QString)),
             Qt::QueuedConnection);
+    connect(pListener->getWrapped(), SIGNAL(sigSnapshotRestore(QString, QString)),
+            this, SIGNAL(sigSnapshotRestore(QString, QString)),
+            Qt::QueuedConnection);
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVirtualBoxEventHandler.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVirtualBoxEventHandler.h	(revision 55358)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/UIVirtualBoxEventHandler.h	(revision 55359)
@@ -46,4 +46,6 @@
     /** Notifies about snapshot with @a strSnapshotId was changed for the machine with @a strId. */
     void sigSnapshotChange(QString strId, QString strSnapshotId);
+    /** Notifies about snapshot with @a strSnapshotId was restored for the machine with @a strId. */
+    void sigSnapshotRestore(QString strId, QString strSnapshotId);
 
 public:
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.cpp	(revision 55358)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.cpp	(revision 55359)
@@ -1282,4 +1282,6 @@
             this, SLOT(sltSnapshotChanged(QString, QString)));
     connect(gVBoxEvents, SIGNAL(sigSnapshotChange(QString, QString)),
+            this, SLOT(sltSnapshotChanged(QString, QString)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotRestore(QString, QString)),
             this, SLOT(sltSnapshotChanged(QString, QString)));
 }
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsSet.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsSet.cpp	(revision 55358)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsSet.cpp	(revision 55359)
@@ -344,4 +344,5 @@
     connect(gVBoxEvents, SIGNAL(sigSnapshotDelete(QString, QString)), this, SLOT(sltMachineAttributesChange(QString)));
     connect(gVBoxEvents, SIGNAL(sigSnapshotChange(QString, QString)), this, SLOT(sltMachineAttributesChange(QString)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotRestore(QString, QString)), this, SLOT(sltMachineAttributesChange(QString)));
 
     /* Meidum-enumeration connections: */
