I'm using the Keil C251 Compiler Optimizing 80251 C Compiler Version 1.x (DLL 1.24) The following instruction is in a function called after an SIO Interrupt: byLength = abyRecBuf[0] And the generated code is 7E7301D0 MOV R7,ABYRECBUF 7E004D MOV R0,#4D A5A607 MOV @R0?#BOOTDOWN#Value 4D is byLength's memory address and Value is a parameter from BootDown witch has nothing to do with the SIO interrupt. Is it a compiler bug ????