static int libusb_initialized = 0;
 
 /* Not in all libusb-1.0 versions, so we have to roll our own :-( */
-static char * usb_strerror(int e)
+static const char* usb_strerror(int e)
 {
        static char unknerr[256];
 
        return unknerr;
 }
 
-static char * usb_str_transfer_status(int e)
+static const char* usb_str_transfer_status(int e)
 {
        static char unknerr[256];
 
                case LIBUSB_TRANSFER_CANCELLED:
                        return "Transfer cancelled";
                case LIBUSB_TRANSFER_STALL:
+                       return "For bulk/interrupt endpoints: endpoint stalled. For control endpoints: control request not supported.";
+               case LIBUSB_TRANSFER_NO_DEVICE:
                        return "No device";
                case LIBUSB_TRANSFER_OVERFLOW:
                        return "Transfer overflow";