diff --git a/flashchips.c b/flashchips.c
index ac27c90548ac1940da9619f3b2cae5db6c04f9d2..65eb7f0ae7f50b0ed16fe7c9ef9ee49bb3a2e2e6 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -3060,7 +3060,7 @@ struct flashchip flashchips[] = {
 		.model_id	= W_29C040P,
 		.total_size	= 512,
 		.page_size	= 256,
-		.tested		= TEST_UNTESTED,
+		.tested		= TEST_OK_PREW,
 		.probe		= probe_jedec,
 		.probe_timing	= 10, 
 		.erase		= erase_chip_jedec,
diff --git a/jedec.c b/jedec.c
index fb6e5ed7b59e9e5e341ab0e86a36243017d316a3..69a59b32b18ad9c430807edf1230421f83ec962c 100644
--- a/jedec.c
+++ b/jedec.c
@@ -262,7 +262,7 @@ int erase_chip_jedec(struct flashchip *flash)
 int write_page_write_jedec(struct flashchip *flash, uint8_t *src,
 			   int start, int page_size)
 {
-	int i, tried = 0, start_index = 0, ok;
+	int i, tried = 0, ok;
 	uint8_t *s = src;
 	chipaddr bios = flash->virtual_memory;
 	chipaddr dst = bios + start;
@@ -275,7 +275,7 @@ retry:
 	chip_writeb(0xA0, bios + 0x5555);
 
 	/* transfer data from source to destination */
-	for (i = start_index; i < page_size; i++) {
+	for (i = 0; i < page_size; i++) {
 		/* If the data is 0xFF, don't program it */
 		if (*src != 0xFF)
 			chip_writeb(*src, dst);
@@ -290,7 +290,7 @@ retry:
 	ok = !verify_range(flash, src, start, page_size, NULL);
 
 	if (!ok && tried++ < MAX_REFLASH_TRIES) {
-		start_index = i;
+		fprintf(stderr, "retrying.\n");
 		goto retry;
 	}
 	if (!ok) {