An older post, in the knowledge base describes that variable corruption can occur if local variables in an interrupt are overlayed with non interrupt or lower priority local variables. http://www.keil.com/support/docs/658.htm I am using C51.exe V7.06. BL51.exe V5.03 This post does not state my version of compiler as having this issue, but it sounds like a generic problem. I can't use the first 3 options because of the complexity of my code, but I am unclear about the last point "Make sure the memory usage of your interrupts is not greater than the registerbank it's using when it "fires"." I am not using register banking for any interrupt and I believe I only have then 8 bytes of register bank 0 to use for back up when an interrupt fires. Does that mean if my interrupt fires and uses more than 8 bytes in common with another level interrupt I could have variable corruption.