--- xserver-xorg-input-keyboard-1.1.0/src/kbd.c 2006-04-07 19:47:10.000000000 +0200 +++ xserver-xorg-input-keyboard-1.1.0-mine/src/kbd.c 2007-01-14 23:25:18.000000000 +0100 @@ -386,7 +386,22 @@ KbdCtrl( DeviceIntPtr device, KeybdCtrl InputInfoPtr pInfo = (InputInfoPtr) device->public.devicePrivate; KbdDevPtr pKbd = (KbdDevPtr) pInfo->private; - if ( ctrl->leds & XCOMP ) { + if ( ctrl->leds & XLED1) { + pKbd->keyLeds |= CAPSFLAG; + } else { + pKbd->keyLeds &= ~CAPSFLAG; + } + if ( ctrl->leds & XLED2) { + pKbd->keyLeds |= NUMFLAG; + } else { + pKbd->keyLeds &= ~NUMFLAG; + } + if ( ctrl->leds & XLED3) { + pKbd->keyLeds |= SCROLLFLAG; + } else { + pKbd->keyLeds &= ~SCROLLFLAG; + } + if ( ctrl->leds & (XCOMP|XLED4) ) { pKbd->keyLeds |= COMPOSEFLAG; } else { pKbd->keyLeds &= ~COMPOSEFLAG;