--- libusb-1.0.6/libusb/os/darwin_usb.c.orig	2010-02-13 20:40:08.000000000 +0100
+++ libusb-1.0.6/libusb/os/darwin_usb.c	2010-02-13 20:46:11.000000000 +0100
@@ -1191,9 +1191,9 @@
   tpriv->req.bmRequestType     = setup->bmRequestType;
   tpriv->req.bRequest          = setup->bRequest;
   /* these values should already be in bus order */
-  tpriv->req.wValue            = setup->wValue;
-  tpriv->req.wIndex            = setup->wIndex;
-  tpriv->req.wLength           = setup->wLength;
+  tpriv->req.wValue            = libusb_le16_to_cpu(setup->wValue);
+  tpriv->req.wIndex            = libusb_le16_to_cpu(setup->wIndex);
+  tpriv->req.wLength           = libusb_le16_to_cpu(setup->wLength);
   /* data is stored after the libusb control block */
   tpriv->req.pData             = transfer->buffer + LIBUSB_CONTROL_SETUP_SIZE;
   tpriv->req.completionTimeout = transfer->timeout;

