diff --git a/avrdude/ChangeLog b/avrdude/ChangeLog
index 9530eab8..2f67633d 100644
--- a/avrdude/ChangeLog
+++ b/avrdude/ChangeLog
@@ -1,3 +1,9 @@
+2011-05-11  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
+
+	* usb_libusb.c: Bump timeout values to allow for slow clock
+	speeds.
+	* jtagmkII.c: (Ditto.)
+
 2011-03-04  Eric B. Weddington  <eric.weddington@atmel.com>
 
 	Thanks to Vitaly Chernookiy for the patch.
diff --git a/avrdude/jtagmkII.c b/avrdude/jtagmkII.c
index 8ca265dc..259ba6e9 100644
--- a/avrdude/jtagmkII.c
+++ b/avrdude/jtagmkII.c
@@ -483,7 +483,7 @@ static int jtagmkII_recv_frame(PROGRAMMER * pgm, unsigned char **msg,
   unsigned short checksum = 0;
 
   struct timeval tv;
-  double timeoutval = 5;	/* seconds */
+  double timeoutval = 100;	/* seconds */
   double tstart, tnow;
 
   if (verbose >= 4)
diff --git a/avrdude/usb_libusb.c b/avrdude/usb_libusb.c
index a3cbea04..cc476a6d 100644
--- a/avrdude/usb_libusb.c
+++ b/avrdude/usb_libusb.c
@@ -269,7 +269,7 @@ static int usbdev_send(union filedescriptor *fd, unsigned char *bp, size_t mlen)
    */
   do {
     tx_size = (mlen < USBDEV_MAX_XFER)? mlen: USBDEV_MAX_XFER;
-    rv = usb_bulk_write(udev, USBDEV_BULK_EP_WRITE, (char *)bp, tx_size, 5000);
+    rv = usb_bulk_write(udev, USBDEV_BULK_EP_WRITE, (char *)bp, tx_size, 100000);
     if (rv != tx_size)
     {
         fprintf(stderr, "%s: usbdev_send(): wrote %d out of %d bytes, err = %s\n",
@@ -315,7 +315,7 @@ usb_fill_buf(usb_dev_handle *udev, int ep)
 {
   int rv;
 
-  rv = usb_bulk_read(udev, ep, usbbuf, USBDEV_MAX_XFER, 5000);
+  rv = usb_bulk_read(udev, ep, usbbuf, USBDEV_MAX_XFER, 100000);
   if (rv < 0)
     {
       if (verbose > 1)
@@ -393,7 +393,7 @@ static int usbdev_recv_frame(union filedescriptor *fd, unsigned char *buf, size_
   do
     {
       rv = usb_bulk_read(udev, fd->usb.ep, usbbuf,
-			 USBDEV_MAX_XFER, 10000);
+			 USBDEV_MAX_XFER, 100000);
       if (rv < 0)
 	{
 	  if (verbose > 1)