Index: /trunk/src/VBox/Main/DisplayImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/DisplayImpl.cpp	(revision 35156)
+++ /trunk/src/VBox/Main/DisplayImpl.cpp	(revision 35157)
@@ -24,4 +24,7 @@
 #include "AutoCaller.h"
 #include "Logging.h"
+
+/* generated header */
+#include "VBoxEvents.h"
 
 #include <iprt/semaphore.h>
@@ -3846,4 +3849,10 @@
 
     DISPLAYFBINFO *pFBInfo = &pThis->maFramebuffers[pScreen->u32ViewIndex];
+
+    if (pScreen->u16Flags & VBVA_SCREEN_F_DISABLED)
+    {
+        fireGuestMonitorDisabledEvent(pThis->mParent->getEventSource(), pScreen->u32ViewIndex);
+        return VINF_SUCCESS;
+    }
 
     /* Check if this is a real resize or a notification about the screen origin.
Index: /trunk/src/VBox/Main/idl/VirtualBox.xidl
===================================================================
--- /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 35156)
+++ /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 35157)
@@ -14765,5 +14765,5 @@
   <enum
     name="VBoxEventType"
-    uuid="c9412a17-c1e1-46db-b4b7-18de9c967e85"
+    uuid="f33c82ca-1379-43a5-9211-8caae647e694"
     >
 
@@ -15018,7 +15018,12 @@
       </desc>
     </const>
+    <const name="OnGuestMonitorDisabled" value="71">
+      <desc>
+        See <link to="IGuestMonitorDisabledEvent">IGuestMonitorDisabledEvent</link>.
+      </desc>
+    </const>
 
     <!-- Last event marker -->
-    <const name="Last" value="71">
+    <const name="Last" value="72">
       <desc>
         Must be last event, used for iterations and structures relying on numerical event values.
@@ -16339,4 +16344,20 @@
   </interface>
 
+  <interface
+    name="IGuestMonitorDisabledEvent" extends="IEvent"
+    uuid="87760f7d-05fc-40d8-be04-5bf2763a51d5"
+    wsmap="managed" autogen="VBoxEvent" id="OnGuestMonitorDisabled"
+    >
+    <desc>
+      Notification when the guest disables one of its monitors.
+    </desc>
+
+    <attribute name="screenId" type="unsigned long" readonly="yes">
+      <desc>
+        The monitor which was disabled.
+      </desc>
+    </attribute>
+  </interface>
+
   <module name="VBoxSVC" context="LocalServer">
     <class name="VirtualBox" uuid="B1A7A4F2-47B9-4A1E-82B2-07CCD5323C3F"
Index: /trunk/src/VBox/Main/include/ConsoleImpl.h
===================================================================
--- /trunk/src/VBox/Main/include/ConsoleImpl.h	(revision 35156)
+++ /trunk/src/VBox/Main/include/ConsoleImpl.h	(revision 35157)
@@ -211,4 +211,5 @@
     ExtPackManager *getExtPackManager();
 #endif
+    EventSource *getEventSource() { return mEventSource; }
 
     int VRDPClientLogon(uint32_t u32ClientId, const char *pszUser, const char *pszPassword, const char *pszDomain);
