I'm sorry but I have to disagree with Stack Failure causing corruption of EEPROM space.

I use a lot of 18F2420's in a particular application which is several years old and there are hundreds built and continue to be built...

I have had a batch (this spring/summer) that were exceptionally sensitive to noise and corrupted randomly internal EEPROM (I do a CRC check on EEPROM as part of the Power-On Tests). Changing BOR and various other parameters didn't help. Using MCLR pin as PORTE.3 input seemed to also be a problem.

I changed PORTE.3 back to MCLR usage and connected it directly to Vdd... that helped a lot but didn't eradicate the problem altogether.

I was running out of time... Fortunately, there was an external EEPROM with spare space available on the board. I changed all the internal EEPROM routines to external EEPROM and abandoned using the internal EEPROM on this application altogether. Not had a problem since - 100% reliable.

When the 18F's first came out, they were VERY sensitive to noise - almost to the extent they were unreliable. I think Microchip addressed these issues because the reliability of the 18F parts today is nowhere near as bad as it was some years back. However, occasionally, I think an odd batch gets out...

Also, I think this next comment is going to be contentious - especially amongst those that resell Microchip parts. The only and I repeat ONLY time I have EVER experienced PIC problems is when they have been sourced from resellers. When purchased from Microchip directly, there has NEVER been any problem. OK, sometimes Microchip is out of stock, and production must go on... so sourcing from elsewhere is unavoidable... but I have suspicions that sometimes the stock you receive isn't 'fresh'. Years after you think all the issues have been resolved with a part, you end up buying from a distributor/reseller that has had product on the shelf for Gawd knows how long with resultant consequences...