Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.cpp	(revision 57872)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.cpp	(revision 57873)
@@ -44,4 +44,5 @@
 # include "CStateChangedEvent.h"
 # include "CNetworkAdapterChangedEvent.h"
+# include "CStorageDeviceChangedEvent.h"
 # include "CMediumChangedEvent.h"
 # include "CUSBDevice.h"
@@ -187,4 +188,10 @@
             break;
         }
+        case KVBoxEventType_OnStorageDeviceChanged:
+        {
+            CStorageDeviceChangedEvent es(pEvent);
+            emit sigStorageDeviceChange(es.GetStorageDevice(), es.GetRemoved(), es.GetSilent());
+            break;
+        }
         case KVBoxEventType_OnMediumChanged:
         {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.h	(revision 57872)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.h	(revision 57873)
@@ -85,4 +85,6 @@
     /** Notifies about network @a adapter state change. */
     void sigNetworkAdapterChange(CNetworkAdapter adapter);
+    /** Notifies about storage device change for @a attachment, which was @a fRemoved and it was @a fSilent for guest. */
+    void sigStorageDeviceChange(CMediumAttachment attachment, bool fRemoved, bool fSilent);
     /** Notifies about storage medium @a attachment state change. */
     void sigMediumChange(CMediumAttachment attachment);
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIConsoleEventHandler.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIConsoleEventHandler.cpp	(revision 57872)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIConsoleEventHandler.cpp	(revision 57873)
@@ -118,4 +118,5 @@
         << KVBoxEventType_OnAdditionsStateChanged
         << KVBoxEventType_OnNetworkAdapterChanged
+        << KVBoxEventType_OnStorageDeviceChanged
         << KVBoxEventType_OnMediumChanged
         << KVBoxEventType_OnVRDEServerChanged
@@ -152,4 +153,7 @@
             this, SIGNAL(sigNetworkAdapterChange(CNetworkAdapter)),
             Qt::QueuedConnection);
+    connect(pListener->getWrapped(), SIGNAL(sigStorageDeviceChange(CMediumAttachment, bool, bool)),
+            this, SIGNAL(sigStorageDeviceChange(CMediumAttachment, bool, bool)),
+            Qt::QueuedConnection);
     connect(pListener->getWrapped(), SIGNAL(sigMediumChange(CMediumAttachment)),
             this, SIGNAL(sigMediumChange(CMediumAttachment)),
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIConsoleEventHandler.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIConsoleEventHandler.h	(revision 57872)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIConsoleEventHandler.h	(revision 57873)
@@ -49,4 +49,6 @@
     /** Notifies about network @a adapter state change. */
     void sigNetworkAdapterChange(CNetworkAdapter adapter);
+    /** Notifies about storage device change for @a attachment, which was @a fRemoved and it was @a fSilent for guest. */
+    void sigStorageDeviceChange(CMediumAttachment attachment, bool fRemoved, bool fSilent);
     /** Notifies about storage medium @a attachment state change. */
     void sigMediumChange(CMediumAttachment attachment);
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp	(revision 57872)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp	(revision 57873)
@@ -772,4 +772,10 @@
     /* Notify listeners about the change: */
     emit sigGuestMonitorChange(changeType, uScreenId, screenGeo);
+}
+
+void UISession::sltHandleStorageDeviceChange(const CMediumAttachment &attachment, bool fRemoved, bool fSilent)
+{
+    /* Notify listeners about storage device change: */
+    emit sigStorageDeviceChange(attachment, fRemoved, fSilent);
 }
 
@@ -1192,4 +1198,7 @@
             this, SIGNAL(sigNetworkAdapterChange(CNetworkAdapter)));
 
+    connect(gConsoleEvents, SIGNAL(sigStorageDeviceChange(CMediumAttachment, bool, bool)),
+            this, SLOT(sltHandleStorageDeviceChange(CMediumAttachment, bool, bool)));
+
     connect(gConsoleEvents, SIGNAL(sigMediumChange(CMediumAttachment)),
             this, SIGNAL(sigMediumChange(CMediumAttachment)));
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.h	(revision 57872)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.h	(revision 57873)
@@ -262,4 +262,6 @@
     void sigAdditionsStateActualChange();
     void sigNetworkAdapterChange(const CNetworkAdapter &networkAdapter);
+    /** Notifies about storage device change for @a attachment, which was @a fRemoved and it was @a fSilent for guest. */
+    void sigStorageDeviceChange(const CMediumAttachment &attachment, bool fRemoved, bool fSilent);
     void sigMediumChange(const CMediumAttachment &mediumAttachment);
     void sigVRDEChange();
@@ -317,4 +319,6 @@
     void sltVideoCaptureChange();
     void sltGuestMonitorChange(KGuestMonitorChangedEventType changeType, ulong uScreenId, QRect screenGeo);
+    /** Handles storage device change for @a attachment, which was @a fRemoved and it was @a fSilent for guest. */
+    void sltHandleStorageDeviceChange(const CMediumAttachment &attachment, bool fRemoved, bool fSilent);
 
     /* Handlers: Display reconfiguration stuff: */
