--- src/ftdi.c.orig Wed Apr 16 16:24:30 2008 +++ src/ftdi.c Thu May 01 20:19:46 2008 @@ -358,6 +358,17 @@ if (usb_detach_kernel_driver_np(ftdi->usb_dev, ftdi->interface) != 0 && errno != ENODATA) detach_errno = errno; #endif + +#if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) + if (usb_set_configuration(ftdi->usb_dev, 1) != 0) { + usb_close (ftdi->usb_dev); + if (detach_errno == EPERM) { + ftdi_error_return(-8, "inappropriate permissions on device!"); + } else { + ftdi_error_return(-5, "unable to set configuration"); + } + } +#endif if (usb_claim_interface(ftdi->usb_dev, ftdi->interface) != 0) { usb_close (ftdi->usb_dev);