Index: /trunk/src/VBox/Additions/x11/vboxvideo/vboxutils.c
===================================================================
--- /trunk/src/VBox/Additions/x11/vboxvideo/vboxutils.c	(revision 35101)
+++ /trunk/src/VBox/Additions/x11/vboxvideo/vboxutils.c	(revision 35102)
@@ -242,5 +242,5 @@
         pViews[i].u32ViewIndex = i;
         pViews[i].u32ViewOffset = 0;
-        pViews[i].u32ViewSize = pVBox->cbFramebuffer;
+        pViews[i].u32ViewSize = pVBox->cbView;
         pViews[i].u32MaxScreenSize = pVBox->cbFramebuffer;
     }
@@ -282,10 +282,8 @@
         return FALSE;
     }
-    pVBox->cbFramebuffer = offVRAMBaseMapping;
+    pVBox->cbView = pVBox->cbFramebuffer = offVRAMBaseMapping;
     pVBox->cScreens = VBoxHGSMIGetMonitorCount(&pVBox->guestCtx);
     xf86DrvMsg(scrnIndex, X_INFO, "Requested monitor count: %u\n",
                pVBox->cScreens);
-    rc = VBoxHGSMISendViewInfo(&pVBox->guestCtx, pVBox->cScreens,
-                               vboxFillViewInfo, (void *)pVBox);
     for (i = 0; i < pVBox->cScreens; ++i)
     {
@@ -296,4 +294,6 @@
                                    VBVA_MIN_BUFFER_SIZE);
     }
+    rc = VBoxHGSMISendViewInfo(&pVBox->guestCtx, pVBox->cScreens,
+                               vboxFillViewInfo, (void *)pVBox);
 
     /* Set up the dirty rectangle handler.  Since this seems to be a
Index: /trunk/src/VBox/Additions/x11/vboxvideo/vboxvideo.h
===================================================================
--- /trunk/src/VBox/Additions/x11/vboxvideo/vboxvideo.h	(revision 35101)
+++ /trunk/src/VBox/Additions/x11/vboxvideo/vboxvideo.h	(revision 35102)
@@ -185,4 +185,6 @@
     /** The amount of VRAM available for use as a framebuffer */
     unsigned long cbFramebuffer;
+    /** The size of the framebuffer and the VBVA buffers at the end of it. */
+    unsigned long cbView;
     /** The current line size in bytes */
     uint32_t cbLine;
