Index: uspace/lib/usb/src/usbdrv.c
===================================================================
--- uspace/lib/usb/src/usbdrv.c	(revision 6b1931b2a97dab616738c3b57767198156059bad)
+++ uspace/lib/usb/src/usbdrv.c	(revision 3937bda2a1beb458c852ac38c43e928cf9647e3e)
@@ -464,6 +464,6 @@
 	assert(setup_packet != NULL);
 	assert(setup_packet_size > 0);
-	assert(buffer != NULL);
-	assert(buffer_size > 0);
+	assert(((buffer != NULL) && (buffer_size > 0))
+	    || ((buffer == NULL) && (buffer_size == 0)));
 	assert(handle != NULL);
 
@@ -494,8 +494,10 @@
 	}
 
-	rc = async_data_write_start(phone, buffer, buffer_size);
-	if (rc != EOK) {
-		async_wait_for(transfer->request, NULL);
-		return rc;
+	if (buffer_size > 0) {
+		rc = async_data_write_start(phone, buffer, buffer_size);
+		if (rc != EOK) {
+			async_wait_for(transfer->request, NULL);
+			return rc;
+		}
 	}
 
