--- libnfc/drivers/pn53x_usb.c.org	2014-02-24 15:16:47.000000000 +0000
+++ libnfc/drivers/pn53x_usb.c	2016-04-07 02:51:52.227057971 +0000
@@ -211,10 +211,20 @@
           // Set configuration
           int res = usb_set_configuration(udev, 1);
           if (res < 0) {
-            log_put(LOG_GROUP, LOG_CATEGORY, NFC_LOG_PRIORITY_ERROR, "Unable to set USB configuration (%s)", _usb_strerror(res));
-            usb_close(udev);
-            // we failed to use the device
-            continue;
+//            log_put(LOG_GROUP, LOG_CATEGORY, NFC_LOG_PRIORITY_ERROR, "Unable to set USB configuration (%s)", _usb_strerror(res));
+//            usb_close(udev);
+//            // we failed to use the device
+//            continue;
+            if((res = usb_detach_kernel_driver_np(udev, dev->config->interface->altsetting->bInterfaceNumber))<0){
+              log_put(LOG_GROUP, LOG_CATEGORY, NFC_LOG_PRIORITY_ERROR, "Unable to detach usb kernel driver(%s)", _usb_strerror(res));
+              usb_close(udev);
+              continue;
+            }
+            else if((res = usb_set_configuration(udev, 1))<0){
+              log_put(LOG_GROUP, LOG_CATEGORY, NFC_LOG_PRIORITY_ERROR, "Unable to set USB configuration (%s)", _usb_strerror(res));
+              usb_close(udev);
+              continue;
+            }
           }
 
           // pn53x_usb_get_usb_device_name (dev, udev, pnddDevices[device_found].acDevice, sizeof (pnddDevices[device_found].acDevice));
