diff --git a/flash_rom.c b/flash_rom.c
index 171fe3e..24b07a7 100644
--- a/flash_rom.c
+++ b/flash_rom.c
@@ -48,7 +48,7 @@
     {"SST28SF040A", SST_ID,     SST_28SF040,  NULL, 512, 256,
      probe_28sf040, erase_28sf040, write_28sf040},
     {"SST39SF020A", SST_ID,     SST_39SF020,  NULL, 256, 4096,
-     probe_jedec, erase_jedec, write_39sf020},
+     probe_39sf020, erase_39sf020, write_39sf020},
     {"W29C020C",    WINBOND_ID, W_29C020C,    NULL, 256, 128,
      probe_jedec,   erase_jedec,   write_jedec},
     {NULL,}
diff --git a/sst39sf020.c b/sst39sf020.c
index 3c310a7..49e695f 100644
--- a/sst39sf020.c
+++ b/sst39sf020.c
@@ -72,13 +72,19 @@
 	toggle_ready_jedec(bios);
 }
 
-static __inline__ write_sector_39sf020(volatile char * bios, unsigned char * src,
-				       volatile unsigned char * dst, unsigned int page_size)
+static __inline__ write_sector_39sf020(volatile char * bios, 
+				       unsigned char * src,
+				       volatile unsigned char * dst, 
+				       unsigned int page_size)
 {
 	int i;
 	volatile char *Temp;
 
 	for (i = 0; i < page_size; i++) {
+	  if (*dst != 0xff) {
+	    printf("FATAL: dst %p not erased (val 0x%x\n", dst, *dst);
+	    return;
+	  }
 		/* transfer data from source to destination */
 		if (*src == 0xFF) {
 			dst++, src++;
@@ -91,8 +97,11 @@
             *Temp = 0x55; 
             Temp =  bios + 0x5555; 
             *Temp = 0xA0;                   
-		*dst++ = *src++;
+		*dst = *src;
 		toggle_ready_jedec(bios);
+            if (*dst != *src) printf("BAD! dst 0x%x val 0x%x src 0x%x\n",
+					dst, *dst, *src);
+		dst++, src++;
 	}
 }
 
@@ -127,15 +136,29 @@
 
 int erase_39sf020 (struct flashchip * flash)
 {
-	volatile char * bios = flash->virt_addr;
-
-	unprotect_39sf020 (bios);
-	*bios = CHIP_ERASE;
-	*bios = CHIP_ERASE;
-	protect_39sf020 (bios);
-
+	volatile unsigned char * bios = flash->virt_addr;
+	volatile unsigned char *Temp; 
+        /*  Issue the Sector Erase command to 39SF020   */
+	printf(__FUNCTION__ " bios is %p\n", bios);
+        Temp  = bios + 0x5555; /* set up address to be C000:5555h      */
+        *Temp = 0xAA;            /* write data 0xAA to the address       */
 	myusec_delay(10);
-	toggle_ready_jedec(bios);
+        Temp  = bios + 0x2AAA; /* set up address to be C000:2AAAh      */
+        *Temp = 0x55;         /* write data 0x55 to the address       */
+	myusec_delay(10);
+        Temp  = bios + 0x5555; /* set up address to be C000:5555h      */
+        *Temp = 0x80;            /* write data 0x80 to the address       */
+	myusec_delay(10);
+        Temp  = bios + 0x5555; /* set up address to be C000:5555h      */
+        *Temp = 0xAA;         /* write data 0xAA to the address       */
+	myusec_delay(10);
+        Temp  = bios + 0x2AAA; /* set up address to be C000:2AAAh      */
+        *Temp = 0x55;          /* write data 0x55 to the address       */
+	myusec_delay(10);
+        Temp  = bios + 0x5555; /* set up address to be C000:5555h      */
+        *Temp = 0x10;       /* write data 0x55 to the address       */
+
+	myusec_delay(20000);
 }
 
 int write_39sf020 (struct flashchip * flash, char * buf)
@@ -145,7 +168,7 @@
 	volatile char * bios = flash->virt_addr;
 
 //	unprotect_39sf020 (bios);
-
+	erase_39sf020(flash);
 	printf ("Programming Page: ");
 	for (i = 0; i < total_size/page_size; i++) {
 		/* erase the page before programming */
