Index: uspace/drv/hid/usbhid/kbd/kbddev.c
===================================================================
--- uspace/drv/hid/usbhid/kbd/kbddev.c	(revision 970f6e17bc50adfee9cdfeffeb8ae2b6736726ae)
+++ uspace/drv/hid/usbhid/kbd/kbddev.c	(revision 708d8fcd39276a71e62f9b40a631eab1814b52d7)
@@ -328,9 +328,9 @@
  * An event is created only when key is pressed or released. Besides handling
  * the events (usb_kbd_push_ev()), the auto-repeat fibril is notified about
- * key presses and releases (see usb_kbd_repeat_start() and 
+ * key presses and releases (see usb_kbd_repeat_start() and
  * usb_kbd_repeat_stop()).
  *
  * @param kbd_dev Keyboard device structure.
- * @param key_codes Parsed keyboard report - codes of currently pressed keys 
+ * @param key_codes Parsed keyboard report - codes of currently pressed keys
  *                  according to HID Usage Tables.
  * @param count Number of key codes in report (size of the report).
@@ -709,5 +709,6 @@
 	usb_kbd_process_data(hid_dev, kbd_dev);
 
-	return true;
+	/* Continue polling until the device is about to be removed. */
+	return !hid_dev->will_deinit;
 }
 
Index: uspace/drv/hid/usbhid/multimedia/multimedia.c
===================================================================
--- uspace/drv/hid/usbhid/multimedia/multimedia.c	(revision 970f6e17bc50adfee9cdfeffeb8ae2b6736726ae)
+++ uspace/drv/hid/usbhid/multimedia/multimedia.c	(revision 708d8fcd39276a71e62f9b40a631eab1814b52d7)
@@ -246,5 +246,5 @@
 	usb_hid_report_path_t *path = usb_hid_report_path();
 	if (path == NULL)
-		return true; /* This might be a temporary failure. */
+		return !hid_dev->will_deinit; /* This might be a temporary failure. */
 
 	int ret =
@@ -252,5 +252,5 @@
 	if (ret != EOK) {
 		usb_hid_report_path_free(path);
-		return true; /* This might be a temporary failure. */
+		return !hid_dev->will_deinit; /* This might be a temporary failure. */
 	}
 
@@ -284,5 +284,5 @@
 	usb_hid_report_path_free(path);
 
-	return true;
+	return !hid_dev->will_deinit;
 }
 /**
