Index: uspace/drv/usbkbd/kbddev.c
===================================================================
--- uspace/drv/usbkbd/kbddev.c	(revision 70a71e55226a76c58f46ae9fc4a352346904d6f6)
+++ uspace/drv/usbkbd/kbddev.c	(revision 7787dd81d8cf8dbc900fe2fd54736731e4b3c064)
@@ -272,18 +272,15 @@
 	unsigned i = 0;
 	
+	/* Reset the LED data. */
+	memset(kbd_dev->led_data, 0, kbd_dev->led_output_size * sizeof(int32_t));
+	
 	if ((kbd_dev->mods & KM_NUM_LOCK) && (i < kbd_dev->led_output_size)) {
 		kbd_dev->led_data[i++] = USB_HID_LED_NUM_LOCK;
 //		leds |= USB_HID_LED_NUM_LOCK;
 	}
-	else {
-	    kbd_dev->led_data[i++] = 0;
-	}
 	
 	if ((kbd_dev->mods & KM_CAPS_LOCK) && (i < kbd_dev->led_output_size)) {
 		kbd_dev->led_data[i++] = USB_HID_LED_CAPS_LOCK;
 //		leds |= USB_HID_LED_CAPS_LOCK;
-	}
-	else {
-	    kbd_dev->led_data[i++] = 0;
 	}
 	
@@ -292,7 +289,4 @@
 		kbd_dev->led_data[i++] = USB_HID_LED_SCROLL_LOCK;
 //		leds |= USB_HID_LED_SCROLL_LOCK;
-	}
-	else {
-	    kbd_dev->led_data[i++] = 0;
 	}
 	
