Index: /trunk/include/VBox/VBoxGuest.h
===================================================================
--- /trunk/include/VBox/VBoxGuest.h	(revision 6509)
+++ /trunk/include/VBox/VBoxGuest.h	(revision 6510)
@@ -1422,5 +1422,5 @@
 VBGLR3DECL(int)     VbglR3VideoAccelEnable(bool fEnable);
 VBGLR3DECL(int)     VbglR3VideoAccelFlush(void);
-VBGLR3DECL(int)     VbglR3SetPointerShape(uint32_t fFlags, uint32_t xHot, uint32_t yHot, uint32_t cx, uint32_t cy, const void *pvImg, size_t cbImg);
+VBGLR3DECL(int)     VbglR3SetPointerShape(uint32_t fFlags, uint32_t xHot, uint32_t yHot, uint32_t cx, uint32_t cy, const void *pvImg, size_t cbReq);
 /** @}  */
 
Index: /trunk/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibVideo.cpp
===================================================================
--- /trunk/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibVideo.cpp	(revision 6509)
+++ /trunk/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibVideo.cpp	(revision 6510)
@@ -68,12 +68,10 @@
  * @param   cy          Pointer height.
  * @param   pvImg       Pointer to the image data (can be NULL).
- * @param   cbImg       The size of the image data not including the pre-allocated area.
- *                      This should be the size of the image data exceeding the size of
- *                      the VMMDevReqMousePointer structure.
+ * @param   cbReq       The complete size of the request.
  */
-VBGLR3DECL(int) VbglR3SetPointerShape(uint32_t fFlags, uint32_t xHot, uint32_t yHot, uint32_t cx, uint32_t cy, const void *pvImg, size_t cbImg)
+VBGLR3DECL(int) VbglR3SetPointerShape(uint32_t fFlags, uint32_t xHot, uint32_t yHot, uint32_t cx, uint32_t cy, const void *pvImg, size_t cbReq)
 {
     VMMDevReqMousePointer *pReq;
-    int rc = vbglR3GRAlloc((VMMDevRequestHeader **)&pReq, sizeof(VMMDevReqMousePointer) + cbImg, VMMDevReq_SetPointerShape);
+    int rc = vbglR3GRAlloc((VMMDevRequestHeader **)&pReq, cbReq, VMMDevReq_SetPointerShape);
     if (RT_SUCCESS(rc))
     {
@@ -84,5 +82,5 @@
         pReq->height = cy;
         if (pvImg)
-            memcpy(pReq->pointerData, pvImg, sizeof(pReq->pointerData) + cbImg);
+            memcpy(pReq->pointerData, pvImg, cbReq - sizeof(VMMDevReqMousePointer) + sizeof(pReq->pointerData));
 
         rc = vbglR3GRPerform(&pReq->header);
Index: /trunk/src/VBox/Additions/x11/xgraphics/vboxutils-new.c
===================================================================
--- /trunk/src/VBox/Additions/x11/xgraphics/vboxutils-new.c	(revision 6509)
+++ /trunk/src/VBox/Additions/x11/xgraphics/vboxutils-new.c	(revision 6510)
@@ -366,5 +366,5 @@
     rc = VbglR3SetPointerShape(0, pVBox->reqp->xHot, pVBox->reqp->yHot, pVBox->reqp->width,
                                pVBox->reqp->height, pVBox->reqp->pointerData,
-                               pVBox->reqp->header.size - pVBox->set_pointer_shape_size);
+                               pVBox->reqp->header.size);
     if (RT_FAILURE(rc))
         xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Could not hide the virtual mouse pointer.\n");
@@ -378,5 +378,5 @@
     rc = VbglR3SetPointerShape(VBOX_MOUSE_POINTER_VISIBLE, pVBox->reqp->xHot, pVBox->reqp->yHot,
                                pVBox->reqp->width, pVBox->reqp->height, pVBox->reqp->pointerData,
-                               pVBox->reqp->header.size - pVBox->set_pointer_shape_size);
+                               pVBox->reqp->header.size);
     if (RT_FAILURE(rc))
         xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Could not unhide the virtual mouse pointer.\n");
@@ -397,5 +397,5 @@
 
     rc = VbglR3SetPointerShape(reqp->fFlags, reqp->xHot, reqp->yHot, reqp->width, reqp->height,
-                               reqp->pointerData, reqp->header.size - pVBox->set_pointer_shape_size);
+                               reqp->pointerData, reqp->header.size);
     if (RT_FAILURE(rc))
         xf86DrvMsg(pScrn->scrnIndex, X_ERROR,  "Unable to set the virtual mouse pointer image.\n");
@@ -708,5 +708,5 @@
 
     VbglR3SetPointerShape(VBOX_MOUSE_POINTER_SHAPE | VBOX_MOUSE_POINTER_ALPHA, bitsp->xhot, bitsp->yhot, w, h,
-                          pm, reqp->header.size - pVBox->set_pointer_shape_size);
+                          pm, reqp->header.size);
     xfree(p);
 }
