diff --git a/ChangeLog b/ChangeLog
index 9c3bf0d6..f017a2d7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2009-02-16  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
+
+	Submitted by Mark Litwack:
+	patch #6261: avrdude won't use dragon/debugwire to write a file
+	to eeprom
+	* jtagmkII.c (jtagmkII_paged_write): when in debugWire mode,
+	implement a paged write to EEPROM as a series of byte writes.
+
 2009-02-16  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
 
 	Submitted by Janos Sallai:
diff --git a/NEWS b/NEWS
index 6fb7b298..56dc93ff 100644
--- a/NEWS
+++ b/NEWS
@@ -35,6 +35,8 @@ Current:
   * Add preliminary support for ATxmega128A1 for the JTAG ICE mkII using
     JTAG.
 
+  * Bugfixes.
+
 Version 5.5:
 
   * Add support for the USBtinyISP programmer (patch #6233)
diff --git a/jtagmkII.c b/jtagmkII.c
index 44086bfc..30743b5d 100644
--- a/jtagmkII.c
+++ b/jtagmkII.c
@@ -1534,13 +1534,25 @@ static int jtagmkII_paged_write(PROGRAMMER * pgm, AVRPART * p, AVRMEM * m,
     PDATA(pgm)->flash_pageaddr = (unsigned long)-1L;
     page_size = PDATA(pgm)->flash_pagesize;
   } else if (strcmp(m->desc, "eeprom") == 0) {
+    if (pgm->flag & PGM_FL_IS_DW) {
+      /*
+       * jtagmkII_paged_write() to EEPROM attempted while in
+       * DW mode.  Use jtagmkII_write_byte() instead.
+       */
+      for (addr = 0; addr < n_bytes; addr++) {
+	status = jtagmkII_write_byte(pgm, p, m, addr, m->buf[addr]);
+	report_progress(addr, n_bytes, NULL);
+	if (status < 0) {
+	  free(cmd);
+	  return -1;
+	}
+      }
+      free(cmd);
+      return n_bytes;
+    }
     cmd[1] = MTYPE_EEPROM_PAGE;
     PDATA(pgm)->eeprom_pageaddr = (unsigned long)-1L;
     page_size = PDATA(pgm)->eeprom_pagesize;
-    if (pgm->flag & PGM_FL_IS_DW) {
-      free(cmd);
-      return -1;
-    }
   }
 
   serial_recv_timeout = 100;