On Wed, 16 Jul 1997 21:36:22 EDT Harold Hallikainen writes: (failure when interrupts are enabled during a certain segment of the main program) [...] >ISR >; Determine cause of interrupt and do it. > saveContext ; Save registers > btfsc pir1,rcif ; check for received character > call RxSerial ; Go get byte > btfsc pir1,pspif ; Parallel slave port write? > call readPSP ; Go handle it Using gotos, calls, etc. in the ISR means saveContext needs to handle PCLATH if you're using more than the first 2K code page (unless copies of the routines are stored in the same place in every page). Also it may be overflowing the stack, if the main program is doing a lot of calling around or the ISR continues to call deeper and deeper. Since these routines are almost certainly only called from one place, it may work better to goto them, then go back to the next bit test when done rather than return. This will save on stack space but not help the PCLATH problem. -Mike