Index: /trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDispIf.cpp
===================================================================
--- /trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDispIf.cpp	(revision 61602)
+++ /trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDispIf.cpp	(revision 61603)
@@ -1458,5 +1458,10 @@
         winEr = NO_ERROR;
 
-        if (i == iChangedMode && fEnable)
+        /* Whether the current display should be enabled. */
+        BOOL fCurrentEnable = i == iChangedMode?
+                                 fEnable:
+                                 RT_BOOL(paDisplayDevices[i].StateFlags & DISPLAY_DEVICE_ACTIVE);
+
+        if (i == iChangedMode && fCurrentEnable)
         {
             RTRECTSIZE Size;
@@ -1473,5 +1478,5 @@
         if (winEr == NO_ERROR)
         {
-            winEr = vboxDispIfResizePerform(pIf, i, fEnable, fExtDispSup, paDisplayDevices, paDeviceModes, cDevModes);
+            winEr = vboxDispIfResizePerform(pIf, i, fCurrentEnable, fExtDispSup, paDisplayDevices, paDeviceModes, cDevModes);
 
             LogFunc(("vboxDispIfResizePerform returned %d\n", winEr));
@@ -1479,5 +1484,5 @@
             if (winEr == ERROR_RETRY)
             {
-                VBoxRrRetrySchedule(pIf, i, fEnable, fExtDispSup, paDisplayDevices, paDeviceModes, cDevModes);
+                VBoxRrRetrySchedule(pIf, i, fCurrentEnable, fExtDispSup, paDisplayDevices, paDeviceModes, cDevModes);
 
                 winEr = NO_ERROR;
