How Microchip reacted onto problems with PIC16F648A :
3. Module: Data EEPROM Memory > 1. PIC16F648A Silicon revision A1. > Unexpected program execution may occur during > data EEPROM write cycles. > Work around > Execute a SLEEP instruction immediately after > setting the EECON1 WR bit and allow the EEIF to > wake the processor from Sleep. This requires the > PEIE bit of the INTCON register and the EEIE bit > of the PIE1 register to be set. All other interrupt > enables must be cleared so that only the EE write > completion will wake the processor.
Source :
Any my "workaround" : wastebasket !!!!
or simply "sleep" Microchip ! This is silly and offensive !