Perhaps this was the wrong thing to do. Anyway, I suspect you overlooked this, since you refer to my (original) reference to a sourceforge project, rather than my attached patch. So I am having another go. The patch is attached to this email.
Sorry if you didn't in fact overlook my patch. I'm not sure what I can do better than attach the output of debian/rules make_patch on the latest source version in Debian unstable. (Is it too late to attach a patch later, like this?)
cheers, Simon (trying hard to be helpful ...)
diff -Nru3 ./xc/programs/Xserver/hw/xfree86/drivers/i810/i830_cursor.c
../build-tree.new/xc/programs/Xserver/hw/xfree86/drivers/i810/i830_cursor.c
--- ./xc/programs/Xserver/hw/xfree86/drivers/i810/i830_cursor.c 2005-01-04
12:32:09.000000000 +0000
+++ ../build-tree.new/xc/programs/Xserver/hw/xfree86/drivers/i810/i830_cursor.c
2004-12-30 23:04:16.000000000 +0000
@@ -2,7 +2,7 @@
/**************************************************************************
Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
-Copyright � 2002 David Dawes
+Copyright 2002 David Dawes
All Rights Reserved.
Permission is hereby granted, free of charge, to any person obtaining a
@@ -57,6 +57,9 @@
#include "i830.h"
+
+#define CURSOR_B_POSITION 0x700c8
+
static void I830LoadCursorImage(ScrnInfoPtr pScrn, unsigned char *src);
static void I830ShowCursor(ScrnInfoPtr pScrn);
static void I830HideCursor(ScrnInfoPtr pScrn);
@@ -207,7 +210,7 @@
temp |= ((y & CURSOR_POS_MASK) << CURSOR_Y_SHIFT);
OUTREG(CURSOR_A_POSITION, temp);
-
+ OUTREG(CURSOR_B_POSITION, temp);
if (pI830->cursorOn) {
if (hide)
pI830->CursorInfoRec->HideCursor(pScrn);

