--- bsd.c.orig	Wed May 17 09:08:39 2006
+++ bsd.c	Wed May 17 09:08:43 2006
@@ -325,7 +325,7 @@
   /* Ensure the endpoint address is correct */
   ep |= USB_ENDPOINT_IN;
 
-  fd = ensure_ep_open(dev, ep, O_RDONLY);
+  fd = ensure_ep_open(dev, ep, O_RDONLY | O_NONBLOCK);
   if (fd < 0) {
     if (usb_debug >= 2) {
 #ifdef __FreeBSD_kernel__
@@ -408,7 +408,7 @@
   /* Ensure the endpoint address is correct */
   ep |= USB_ENDPOINT_IN;
 
-  fd = ensure_ep_open(dev, ep, O_RDONLY);
+  fd = ensure_ep_open(dev, ep, O_RDONLY | O_NONBLOCK);
   if (fd < 0) {
     if (usb_debug >= 2) {
 #ifdef __FreeBSD_kernel__
