> 5) So I'm left with dealing with the T0IF bit, when in the interrupt > service routine. > > T0IE ..shouldn't this be a set (clear, in this instance) and forget item Yes You need to distinguish between what causes an interrupt and what is set when the ISR is entered. For example, RB0 has the associated INT0IF and INT0IE flags. If INT0IE isn't set, then INT0IF can't cause an interrupt, even though it may be set. If an interrupt is caused by a timer then you may find all kinds of other IFs, like INT0IF, set if you look for them. But they are of no consequence if you are not interested in them as interrupt sources. And, for example, it is often the case that you'd poll an IF, like a timer, in a non-critical instance when you don't want to use an interrupt but simply need to know that an event occurred -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist