JN: I am not sure exactly what you are trying to do ... but an interrupt does not affect your 'circle' code. If you want to exit circle after the interrupt try this #DEFINE iflag var1,0 ;define bit 0 of GP variable as a flag bcf iflag circle btfss iflag goto circle nocircle . . . then in your isr, include the intsruction bsf iflag > circle goto circle > > waiting for an interupt. when the isr is finished and I use the retfie > command, will it increment the program counter to execute the instruction > after this one? or if it doesn't is there a way that I can increment the > program counter myself? thanks > > Jonathan Newport