Index: /trunk/src/VBox/Additions/x11/vboxvideo/vbva.c
===================================================================
--- /trunk/src/VBox/Additions/x11/vboxvideo/vbva.c	(revision 43309)
+++ /trunk/src/VBox/Additions/x11/vboxvideo/vbva.c	(revision 43310)
@@ -59,12 +59,13 @@
         return;
 
-    for (i = 0; i < iRects; ++i)
-        for (j = 0; j < pVBox->cScreens; ++j)
+    for (j = 0; j < pVBox->cScreens; ++j)
+    {
+        /* Just continue quietly if VBVA is not currently active. */
+        struct VBVABUFFER *pVBVA = pVBox->aVbvaCtx[j].pVBVA;
+        if (   !pVBVA
+            || !(pVBVA->hostFlags.u32HostEvents & VBVA_F_MODE_ENABLED))
+            continue;
+        for (i = 0; i < iRects; ++i)
         {
-            /* Just continue quietly if VBVA is not currently active. */
-            struct VBVABUFFER *pVBVA = pVBox->aVbvaCtx[j].pVBVA;
-            if (   !pVBVA
-                || !(pVBVA->hostFlags.u32HostEvents & VBVA_F_MODE_ENABLED))
-                continue;
             if (   aRects[i].x1 >   pVBox->aScreenLocation[j].x
                                   + pVBox->aScreenLocation[j].cx
@@ -92,4 +93,5 @@
             }
         }
+    }
 }
 
@@ -121,4 +123,6 @@
     int rc = VINF_SUCCESS;
 
+    /* Why is this here?  In case things break before we have found the real
+     * count? */
     pVBox->cScreens = 1;
     if (!VBoxHGSMIIsSupported())
