I tried using the symbol name in a wwatch expression and the signal function would not execute past that line unsigned char xdata SMBflag=0; ( locates to X:0x0000) signal void Int1(void){ while(1){ wwatch(SMBflag); SI = 1; swatch(5); SI = 0; swatch(5); } } void main (void); { while(1){ SMBflag++; while(SI){ ; } wait_for_10sec(); } } The signal function never executed with the symbol SMBflag but when X:0x0000 was used as an argument it ran fine. I've seen an example on the Keil website for an I2C memory which uses symbols as arguments but I couldn't get it to work either. Am I missing simething obvious here?