>Out of interest: do you re-check all the interrupt >flags just before the RETFIE and loop back if any are >now set (to catch any that happened while you were in >the ISR but after you'd passed their check), or do you >just let another interrupt happen? I just let another interrupt happen. The complexity involved in checking the flags, unless you have an interrupt that needs extremely rapid response, is just too great. Do you check them all, or just specific ones - if so which ones? It is probably faster to let the code return and interrupt again, than deal with the complexity of checking. Incidentally, no-one has mentioned to the OP about what happens if you turn interrupts off and on using the xxxxIE flag. If you wish to do this, you need to check the IE flag to see if you should check the IF flag to find an interrupt. Otherwise you can have interrupts that you do not expect. -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist