506f9a6
--- a/drivers/tripplite_usb.c	
506f9a6
+++ a/drivers/tripplite_usb.c	
506f9a6
@@ -25,7 +25,7 @@ 
ec33e2d
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
ec33e2d
 */
ec33e2d
 
ec33e2d
-#define DRV_VERSION "0.11"
ec33e2d
+#define DRV_VERSION "0.11.1"
ec33e2d
 
ec33e2d
 /* % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % 
ec33e2d
  *
506f9a6
@@ -358,8 +358,6 @@ static int reconnect_ups(void)
506f9a6
 	upsdebugx(2, "= device has been disconnected, try to reconnect =");
506f9a6
 	upsdebugx(2, "==================================================");
ec33e2d
 
506f9a6
-	upsdrv_cleanup();
ec33e2d
-
506f9a6
 	ret = comm_driver->open(&udev, &curDevice, reopen_matcher, NULL);
506f9a6
 	if (ret < 1) {
506f9a6
 		upslogx(LOG_INFO, "Reconnecting to UPS failed; will retry later...");
506f9a6
@@ -515,12 +513,10 @@ void usb_comm_fail(int res, const char *msg)
ec33e2d
 		case -EBUSY:
ec33e2d
 			upslogx(LOG_WARNING, "%s: Device claimed by another process", msg);
ec33e2d
 			fatalx(EXIT_FAILURE, "Terminating: EBUSY");
ec33e2d
-			upsdrv_cleanup();
ec33e2d
 			break;
ec33e2d
 
ec33e2d
 		default:
ec33e2d
 			upslogx(LOG_WARNING, "%s: Device detached? (error %d: %s)", msg, res, usb_strerror());
ec33e2d
-			upsdrv_cleanup();
ec33e2d
 
ec33e2d
 			upslogx(LOG_NOTICE, "Reconnect attempt #%d", ++try);
ec33e2d
 			hd = NULL;