Index: uspace/lib/usbdev/include/usb/dev/poll.h
===================================================================
--- uspace/lib/usbdev/include/usb/dev/poll.h	(revision 9efad54470c08d7d51f40a9febdaa103916aec6f)
+++ uspace/lib/usbdev/include/usb/dev/poll.h	(revision 970f6e17bc50adfee9cdfeffeb8ae2b6736726ae)
@@ -93,4 +93,5 @@
 
 typedef bool (*usb_polling_callback_t)(usb_device_t *, uint8_t *, size_t, void *);
+typedef bool (*usb_polling_error_callback_t)(usb_device_t *, int, void *);
 typedef void (*usb_polling_terminted_callback_t)(usb_device_t *, bool, void *);
 
@@ -107,5 +108,5 @@
 extern int usb_device_auto_poll_desc(usb_device_t *,
     const usb_endpoint_description_t *, usb_polling_callback_t, size_t, int,
-    usb_polling_terminted_callback_t, void *);
+    usb_polling_error_callback_t, usb_polling_terminted_callback_t, void *);
 
 #endif
Index: uspace/lib/usbdev/src/devpoll.c
===================================================================
--- uspace/lib/usbdev/src/devpoll.c	(revision 9efad54470c08d7d51f40a9febdaa103916aec6f)
+++ uspace/lib/usbdev/src/devpoll.c	(revision 970f6e17bc50adfee9cdfeffeb8ae2b6736726ae)
@@ -332,5 +332,5 @@
 int usb_device_auto_poll_desc(usb_device_t * usb_dev,
     const usb_endpoint_description_t *desc, usb_polling_callback_t callback,
-    size_t req_size, int delay,
+    size_t req_size, int delay, usb_polling_error_callback_t error_callback,
     usb_polling_terminted_callback_t terminated_callback, void *arg)
 {
@@ -342,5 +342,5 @@
 		.on_data = callback,
 		.on_polling_end = terminated_callback,
-		.on_error = NULL,
+		.on_error = error_callback,
 		.arg = arg,
 	};
