Alright, I got smart and have an LED coming on whenever the interrupt routine is entered and guess what? The program always goes into the interrupt routine whenever I press a button. The bad news is that the program doesn't seem to be able to determine which switch is pressed fast enough. Again, if I hold the switch down for a second or more, it knows which switch is pressed. But more often than not, I just press the button as anyone would and I see the LED come on indicating the interrupt routine was entered, but the other LEDs don't toggle most of the time. I suspect that the program is dragging somewhere, but I don't know why the program can pick up a change on PORTB but doesn't have the time to determine which input was tripped. Any suggestions? Modified code below.

'************************************************* ************************************************** *
MAIN:
' HIGH PORTE.0
PAUSE 500
LOW PORTE.0
' PAUSE 500
GOTO MAIN
'*************************************************
DISABLE ' do NOT place interrupt checking code below
Halt: ' Halt Routine
HIGH PORTE.0
IF PORTB.0 = 0 THEN
WHILE PORTB.0=0 ' wait for button release & end mismatch condition on portb
WEND
PAUSE 20 ' Debounce delay
HIGH PORTE.1
LOW PORTE.2
ENDIF
IF PORTB.1 = 0 THEN
WHILE PORTB.1=0 ' wait for button release & end mismatch condition on portb
WEND
PAUSE 20 ' Debounce delay
LOW PORTE.1
HIGH PORTE.2
ENDIF

INTCON.0 = 0 ' Clear the interrupt-on-change flag
RESUME Main ' Go to Main routine
ENABLE ' Enable all active interrupts