OK, lets see what your code looks like without the BANKSEL... : End_ISR movlw .10 ; 10 ms on (1 ms is too short) subwf ms_counter,W btfsc STATUS,Z ; --- pop pclath, status & w --- movf PCLATH_TEMP,W movwf PCLATH swapf STATUS_TEMP,W movwf STATUS swapf W_TEMP,F swapf W_TEMP,W retfie ; turns on GIE ;================== End of ISR =========================== Note that depending on the outcome of the "BTFSC STATUS, Z", your restore of PCLATH will *not* work. The first MOVF will sometimes be "skipped" and whatever is left in W from the SUBWF instruction will be moved to PCLATH. If you put *anything* after the BTFSC (that can safely be skipped) your restore of PCLATH will always work. Regards, Jan-Erik. -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist