Index: src/ccid_usb.c
===================================================================
--- src/ccid_usb.c	(revision 7051)
+++ src/ccid_usb.c	(working copy)
@@ -1332,8 +1332,9 @@
 		transfer->type = LIBUSB_TRANSFER_TYPE_INTERRUPT;
 
 		rv = libusb_submit_transfer(transfer);
-		if (rv)
+		if (rv < 0)
 		{
+			libusb_free_transfer(transfer);
 			DEBUG_COMM2("libusb_submit_transfer err %d", rv);
 			break;
 		}
