diff --git a/ChangeLog b/ChangeLog
index c1a97312..57d0fe3f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-09-22  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
+
+	bug #43268: usb_drain() call causes LUFA AVR-ISP MKII Code to Fail
+	* usb_libusb.c (usbdev_drain): Make this a dummy function only.
+
 2014-08-19  Rene Liebscher <R.Liebscher@gmx.de>
 
 	patch #7694 Add support for the atmega32m1
diff --git a/usb_libusb.c b/usb_libusb.c
index eac99296..ff1f6b92 100644
--- a/usb_libusb.c
+++ b/usb_libusb.c
@@ -565,21 +565,16 @@ static int usbdev_recv_frame(union filedescriptor *fd, unsigned char *buf, size_
 
 static int usbdev_drain(union filedescriptor *fd, int display)
 {
-  usb_dev_handle *udev = (usb_dev_handle *)fd->usb.handle;
-  int rv;
-
-  if (udev == NULL)
-    return -1;
-
-  do {
-    if (fd->usb.use_interrupt_xfer)
-      rv = usb_interrupt_read(udev, fd->usb.rep, usbbuf, fd->usb.max_xfer, 100);
-    else
-      rv = usb_bulk_read(udev, fd->usb.rep, usbbuf, fd->usb.max_xfer, 100);
-    if (rv > 0)
-      avrdude_message(MSG_TRACE, "%s: usbdev_drain(): flushed %d characters\n",
-	      progname, rv);
-  } while (rv > 0);
+  /*
+   * There is not much point in trying to flush any data
+   * on an USB endpoint, as the endpoint is supposed to
+   * start afresh after being configured from the host.
+   *
+   * As trying to flush the data here caused strange effects
+   * in some situations (see
+   * https://savannah.nongnu.org/bugs/index.php?43268 )
+   * better avoid it.
+   */
 
   return 0;
 }