I left a label out in my code - here it is again. Sorry to waste bandwidth Gerry In a 16C63 program, I am in a tight loop waiting for an input from portA. Whilst this loop is running, characters are received by the hardware uart using the receiver interrupts. Now some of the time it works just fine but every now and again the program leaves the tight loop and calls 'run_sequence' when it shouldn't This happens both with the device and the emulator. A scope on PortA shows no noise and a permanent low level, it is a switch contact only a few cms from the device anyhow. The ISR doesn't read or write PortA. flash_on_trigger CLRWDT BTFSS FLAGS,FLASH_EN GOTO fot_end BTFSS PORTA,TRIG ;I have tried forcing PORTA,TRIG to a ha rd low GOTO flash_on_trigger CALL run_sequence ; but when my program comes back from th e isr it sometimes ends up here !!!!!!!!!!!!!!!!!!!!!! fot_end RETURN ; I haven't shown my isr run sequence BSF PORTB,LED ;Should not arrive here without TRIG going high! NOP NOP BCF PORTB,LED NOP NOP RETURN Is this a known problem? i.e. if the interrupt occurs during the GOTO flash_on_trigger will the PC be incremented to point to CALL run_sequence instead of looping to label flash_on_trigger. Can anyone help please - before I pull my remaining hair out. :-( Regards, Gerry Cox gcox@dek.com