struct usb_bus *bus;
        struct usb_device *dev;
        usb_dev_handle *h;
+       #ifdef LIBUSB_HAS_GET_DRIVER_NP
        char buf[128];
+       #endif
        int r;
 
        usb_init();
                if (r != WAIT_OBJECT_0) return 0;
        }
        if (!GetOverlappedResult(h, &ov, &n, FALSE)) return 0;
-       if (n <= 0) return 0;
        return 1;
 }
 
-void print_win32_err(void)
-{
-        char buf[256];
-        DWORD err;
-
-        err = GetLastError();
-        FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, err,
-                0, buf, sizeof(buf), NULL);
-        printf("err %ld: %s\n", err, buf);
-}
-
 static HANDLE win32_teensy_handle = NULL;
 
 int teensy_open(void)
                if (*buf) {
                        if (parse_hex_line(buf) == 0) {
                                //printf("Warning, parse error line %d\n", lineno);
+                               fclose(fp);
                                return -2;
                        }
                }