Remember that you do not have to do all your context save before your MOVLW xxx/MOVWF TMR1H pair. Assumptions: 1: We 'know' that TMR1H is in bank zero. (Use the datasheet LUKE) 2: TMR1 is the only enabled interrupt (this condition has to be true or this scheme certainly won't work because a TIMER1 interrupt could occur while in the middle of handling another interrupt) You only need to: movwf SAVE_W ; save W movf STATUS,W ; get and save movwf SAVE_STATUS ; ... status clrf STATUS ; bank 0 movlw xxx ; reload value movwf TMR1H ; jam it it bcf PIR1,TMR1IF ; ack the interrupt ... do whatever else you need, if you can avoid any goto's or calls ... you don't even have to save PCLATH movf SAVE_STATUS,W movwf STATUS swapf SAVE_W,F swapf SAVE_W,W retfie Bob Ammerman RAm Systems -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist