diff --git a/avr.c b/avr.c
index 77bbc96a..36d21ea5 100644
--- a/avr.c
+++ b/avr.c
@@ -687,9 +687,11 @@ int avr_write(PROGRAMMER * pgm, AVRPART * p, char * memtype, int size,
       if (m->paged) {
         return pgm->paged_write(pgm, p, m, m->page_size, size);
       }
+#if 0
       else {
-        return pgm->paged_write(pgm, p, m, pgm->page_size, size);
+        return pgm->paged_write(pgm, p, m, 32 /*pgm->page_size*/, size);
       }
+#endif
     }
   }
 
diff --git a/stk500.c b/stk500.c
index a44b46cf..e99bf034 100644
--- a/stk500.c
+++ b/stk500.c
@@ -878,6 +878,12 @@ static int stk500_paged_write(PROGRAMMER * pgm, AVRPART * p, AVRMEM * m,
   int tries;
   unsigned int n;
 
+  if (page_size == 0) {
+    fprintf(stderr, "%s: stk500_paged_write(): invalid page size = %d\n",
+            progname, page_size);
+    return -1;
+  }
+
   if (strcmp(m->desc, "flash") == 0) {
     memtype = 'F';
   }
@@ -906,6 +912,15 @@ static int stk500_paged_write(PROGRAMMER * pgm, AVRPART * p, AVRMEM * m,
     }
   }
 
+#if 0
+  fprintf(stderr, 
+          "n_bytes   = %d\n"
+          "n         = %u\n"
+          "a_div     = %d\n"
+          "page_size = %d\n",
+          n_bytes, n, a_div, page_size);
+#endif     
+
   for (addr = 0; addr < n; addr += page_size) {
     fprintf(stderr, "\r      \r%6u", addr);
     tries = 0;