--- src/mouse/w32inp.c.orig	Mon Sep  3 18:14:44 2007
+++ src/mouse/w32inp.c	Thu Apr  2 10:29:40 2009
@@ -26,6 +26,9 @@
  ** Do not treat WM_PAINT messages here. They are delt with in vd_win32.c.
  ** This produced saturation of GRX event queue	and gobbling of
  ** keyboard/mouse events there (compare behavior of test/mousetst)
+ **
+ ** Contribution by (richard@dogcreek.ca) 02/04/2009
+ ** Synchronisation of windows and grx mouse cursors
  **/
 
 #include "libwin32.h"
@@ -137,10 +140,15 @@
 
 void GrMouseWarp(int x, int y)
 {
+    POINT point;
+
     MOUINFO->xpos = imax(MOUINFO->xmin, imin(MOUINFO->xmax, x));
     MOUINFO->ypos = imax(MOUINFO->ymin, imin(MOUINFO->ymax, y));
     GrMouseUpdateCursor();
-    SetCursorPos(MOUINFO->xpos, MOUINFO->ypos);
+    point.x = MOUINFO->xpos;
+    point.y = MOUINFO->ypos;
+    ClientToScreen(hGRXWnd, &point);
+    SetCursorPos(point.x, point.y);
 }
 
 void GrMouseEventEnable(int enable_kb, int enable_ms)

