diff --git a/Marlin/src/HAL/HAL_LPC1768/persistent_store_flash.cpp b/Marlin/src/HAL/HAL_LPC1768/persistent_store_flash.cpp
index ce6ab7de658a4b210067405ef2a2ac958602cc41..e08da2090495302c020eb113c8c3833529b25aad 100644
--- a/Marlin/src/HAL/HAL_LPC1768/persistent_store_flash.cpp
+++ b/Marlin/src/HAL/HAL_LPC1768/persistent_store_flash.cpp
@@ -57,7 +57,7 @@ extern "C" {
 #define EEPROM_ERASE (0xff)
 #define SLOT_ADDRESS(sector, slot) (((uint8_t *)SECTOR_START(sector)) + slot * EEPROM_SIZE)
 
-static uint8_t ram_eeprom[EEPROM_SIZE];
+static uint8_t ram_eeprom[EEPROM_SIZE] __attribute__((aligned(4))) = {0};
 static bool eeprom_dirty = false;
 static int current_slot = 0;
 
@@ -92,7 +92,6 @@ bool PersistentStore::access_finish() {
     if (--current_slot < 0) {
       // all slots have been used, erase everything and start again
       __disable_irq();
-      PrepareSector(EEPROM_SECTOR, EEPROM_SECTOR);
       status = EraseSector(EEPROM_SECTOR, EEPROM_SECTOR);
       __enable_irq();
 
@@ -100,7 +99,6 @@ bool PersistentStore::access_finish() {
     }
 
     __disable_irq();
-    PrepareSector(EEPROM_SECTOR, EEPROM_SECTOR);
     status = CopyRAM2Flash(SLOT_ADDRESS(EEPROM_SECTOR, current_slot), ram_eeprom, IAP_WRITE_4096);
     __enable_irq();