--- /dev/null
+--- XFree86-Servers-3.3.6/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_io.c~ 2000-01-08 19:26:25.000000000 +0100
++++ XFree86-Servers-3.3.6/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_io.c 2004-09-01 02:11:22.413163720 +0200
+@@ -82,7 +82,7 @@
+ struct kbd_repeat kbdrep_s;
+
+ /* don't change, just test */
+- kbdrep_s.rate = -1;
++ kbdrep_s.period = -1;
+ kbdrep_s.delay = -1;
+ if (ioctl( 0, KDKBDREP, &kbdrep_s )) {
+ return 0;
+@@ -90,11 +90,11 @@
+
+ /* do the change */
+ if (rate == 0) /* switch repeat off */
+- kbdrep_s.rate = 0;
++ kbdrep_s.period = 0;
+ else
+- kbdrep_s.rate = 10000 / rate; /* convert cps to msec */
+- if (kbdrep_s.rate < 1)
+- kbdrep_s.rate = 1;
++ kbdrep_s.period = 10000 / rate; /* convert cps to msec */
++ if (kbdrep_s.period < 1)
++ kbdrep_s.period = 1;
+ kbdrep_s.delay = delay;
+ if (kbdrep_s.delay < 1)
+ kbdrep_s.delay = 1;
+@@ -120,10 +120,10 @@
+ if (fd == -1)
+ return 0;
+
+- kbdrate_s.rate = (rate + 5) / 10; /* must be integer, so round up */
++ kbdrate_s.period = (rate + 5) / 10; /* must be integer, so round up */
+ kbdrate_s.delay = delay * HZ / 1000; /* convert ms to Hz */
+- if (kbdrate_s.rate > 50)
+- kbdrate_s.rate = 50;
++ if (kbdrate_s.period > 50)
++ kbdrate_s.period = 50;
+
+ if (ioctl( fd, KIOCSRATE, &kbdrate_s ))
+ return 0;