Index: avrdude-5.11.1/avr.c =================================================================== --- avrdude-5.11.1.orig/avr.c 2012-07-22 10:29:39.175648484 -0300 +++ avrdude-5.11.1/avr.c 2012-07-22 10:29:47.883934588 -0300 @@ -282,7 +282,8 @@ } } - for (i=0; ipaged ? mem->low_addr : 0; + for (; iread_byte(pgm, p, mem, i, &rbyte); if (rc != 0) { fprintf(stderr, "avr_read(): error reading address 0x%04lx\n", i); @@ -752,7 +753,8 @@ pgm->write_setup(pgm, p, m); } - for (i=0; ipaged ? m->low_addr-(m->low_addr % m->page_size) : 0; + for (; ibuf[i]; report_progress(i, wsize, NULL); Index: avrdude-5.11.1/update.c =================================================================== --- avrdude-5.11.1.orig/update.c 2012-07-22 10:29:39.163648089 -0300 +++ avrdude-5.11.1/update.c 2012-07-22 10:29:47.883934588 -0300 @@ -224,6 +224,7 @@ progname, mem->desc); } report_progress(0,1,"Reading"); + mem->low_addr = 0; /* @@@ hackish */ rc = avr_read(pgm, p, upd->memtype, 0, 1); if (rc < 0) { fprintf(stderr, "%s: failed to read all of %s memory, rc=%d\n",