If I'm not mistaken here, you are always saving d'008' to W_TEMP, not ? Should not "MOVWF W_TEMP" come *before* "MOVLW d'008'" ? Something like this : MOVWF W_TEMP ; save W contents during ISR SWAPF STATUS,W ; MOVWF STATUS_TEMP ; save status to Bank 0 temp reg MOVF PCLATH,W ; MOVWF PCLATH_TEMP ; save PCLATH in temp reg ; CLRF STATUS ; select Bank 0 and clear IRP MOVLW d'008' ; reset Timer 0 by reloading TMR0 reg MOVWF TMR0 ; FFh-248d=8d (req'd for 1.00ms overall Timer 0 rate) Jan-Erik Svderholm S:t Anna Data Sweden > MOVLW d'008' ; reset Timer 0 by reloading TMR0 reg > MOVWF TMR0 ; FFh-248d=8d (req'd for 1.00ms overall Timer 0 rate) > MOVWF W_TEMP ; save W contents during ISR > SWAPF STATUS,W ; > CLRF STATUS ; select Bank 0 and clear IRP > MOVWF STATUS_TEMP ; save status to Bank 0 temp reg > MOVF PCLATH,W ; > MOVWF PCLATH_TEMP ; save PCLATH in temp reg -- http://www.piclist.com hint: The list server can filter out subtopics (like ads or off topics) for you. See http://www.piclist.com/#topics