diff --git a/src/flash/cfi.c b/src/flash/cfi.c
index ee99408e8a5a9b4f4ec5dcbf9ca5af774af8dd99..28dd4d0e871caa510210d2b966e067ad2b6c0bbb 100644
--- a/src/flash/cfi.c
+++ b/src/flash/cfi.c
@@ -498,6 +498,9 @@ int cfi_read_atmel_pri_ext(flash_bank_t *bank)
 		pri_ext->TopBottom = 2;
 	else
 		pri_ext->TopBottom = 3;
+
+	pri_ext->_unlock1 = cfi_unlock_addresses[CFI_UNLOCK_555_2AA].unlock1;
+	pri_ext->_unlock2 = cfi_unlock_addresses[CFI_UNLOCK_555_2AA].unlock2;
 
 	return ERROR_OK;
 }
@@ -611,7 +614,10 @@ int cfi_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **
 	}
 
 	cfi_info = malloc(sizeof(cfi_flash_bank_t));
-	bank->driver_priv = cfi_info;
+	bank->driver_priv = cfi_info;
+  
+  cfi_info->write_algorithm       = NULL;
+  cfi_info->erase_check_algorithm = NULL;
 
 	cfi_info->x16_as_x8 = 0;
 	cfi_info->jedec_probe = 0;