diff --git a/82802ab.c b/82802ab.c
index cdc3d73df4ee59123400c5178f0614eee20d029e..1316939fb8a7436756217f9159082b7991177237 100644
--- a/82802ab.c
+++ b/82802ab.c
@@ -97,7 +97,7 @@ int unlock_82802ab(struct flashchip *flash)
 	int i;
 	//chipaddr wrprotect = flash->virtual_registers + page + 2;
 
-	for (i = 0; i < flash->total_size; i+= flash->page_size)
+	for (i = 0; i < flash->total_size * 1024; i+= flash->page_size)
 	{
 		chip_writeb(0, flash->virtual_registers + i + 2);
 	}
diff --git a/stm50flw0x0x.c b/stm50flw0x0x.c
index 1838efc6e92a88bd9424877f703ef3fb181eb33e..33009695629d0041a9873a072e9d2020201e222a 100644
--- a/stm50flw0x0x.c
+++ b/stm50flw0x0x.c
@@ -85,7 +85,7 @@ int unlock_stm50flw0x0x(struct flashchip *flash)
 {
 	int i;
 
-	for (i = 0; i < flash->total_size; i+= flash->page_size) {
+	for (i = 0; i < flash->total_size * 1024; i+= flash->page_size) {
 		if(unlock_block_stm50flw0x0x(flash, i)) {
 			fprintf(stderr, "UNLOCK FAILED!\n");
 			return -1;