Index: uspace/drv/hid/usbhid/main.c
===================================================================
--- uspace/drv/hid/usbhid/main.c	(revision a4eb520f2cd5290da6c3f4b6778a3b47f080a436)
+++ uspace/drv/hid/usbhid/main.c	(revision 9d170a14fb23725743b822a65391eaf6e17d88dd)
@@ -131,5 +131,5 @@
 	assert(hid_dev);
 
-	usb_log_debug2("%s will be removed, setting remove flag.\n", usb_device_get_name(dev));
+	usb_log_info("%s will be removed, setting remove flag.\n", usb_device_get_name(dev));
 	usb_hid_prepare_deinit(hid_dev);
 
@@ -148,4 +148,6 @@
 	usb_hid_dev_t *hid_dev = usb_device_data_get(dev);
 	assert(hid_dev);
+
+	usb_log_info("%s endpoints unregistered, joining polling fibril.\n", usb_device_get_name(dev));
 
 	/* Join polling fibril. */
@@ -157,5 +159,5 @@
 	/* Clean up. */
 	usb_hid_deinit(hid_dev);
-	usb_log_debug2("%s destruction complete.\n", usb_device_get_name(dev));
+	usb_log_info("%s destruction complete.\n", usb_device_get_name(dev));
 
 	return EOK;
@@ -173,4 +175,8 @@
 	usb_hid_dev_t *hid_dev = usb_device_data_get(dev);
 	assert(hid_dev);
+
+	usb_log_debug2("Device %s gone.\n", usb_device_get_name(dev));
+	usb_hid_prepare_deinit(hid_dev);
+
 	unsigned tries = 100;
 	/* Wait for fail. */
@@ -185,4 +191,5 @@
 	usb_hid_deinit(hid_dev);
 	usb_log_debug2("%s destruction complete.\n", usb_device_get_name(dev));
+
 	return EOK;
 }
