Rob,

Glad it worked for you.

I'm not sure if you want/need to stay in the ISR as I don't know your final objective.

I would suggest using a flag to determine the state of the IOC.3 interrupt coming from your button.
Then in the ISR change the state of the flag each time the interrupt occurs and then get out of the ISR.
You can then setup a subroutine for what you wanted to accomplish in the ISR.
Finally in your main loop check the state of the flag and gosub to the new subroutine.

Here is a working example. Expanded on what I posted last time.

Code:
'PIC 12F683
#CONFIG 
   __config _INTRC_OSC_NOCLKOUT & _WDT_ON & _MCLRE_OFF & _CP_OFF
#ENDCONFIG

'DEFINE OCS 4 '4mhz ocsillator
DEFINE OSC 4 '4mhz ocsillator
ANSEL = 0 'all I/O digital
CMCON0 = 7 'comparator off
LED VAR GPIO.0 'LED pin 7
LED2 VAR GPIO.1 'LED2 pin 6

loop1 var word  ' Loop 1 Counter (word for 0 to 65535 increments)
loop2 var byte  ' Loop 2 Counter (byte used for 0 to 255 increments)
ModeFlag var bit   ' Bit to determine what state of IOC.3 is

'*****Initlaze Vars*****
   loop1 = 0
   loop2 = 0
ModeFlag = 0
'***********************

ON INTERRUPT GOTO mode1 'interrupt handler is mode1
INTCON = %10001000 'enable GIE and GPIE; clear GPIF
IOC = %00001000 ' enable IOC3 (GPIO3 Interrupt on change)

ENABLE 
main:
do
    for loop1 = 1 to 500
        HIGH LED 'led on
        'PAUSE 500 'delay 0.5 second
        pause 1    '1 ms
        if ModeFlag = 1 then
        gosub moderoutine
    endif
    
    next loop1
    
    for loop1 = 1 to 500
        LOW LED 'led off
        'PAUSE 500 'delay 0.5 second
        pause 1    '1 ms
        if ModeFlag = 1 then
        gosub moderoutine
    endif
    
    next loop1

'GOTO main 'repeat
loop

moderoutine:
    do while ModeFlag = 1
        high LED2   'LED2 On
        for loop2 = 0 to 50
            pause 1 '1ms
        next loop2
        
        low LED2    'LED2 Off
        for loop2 = 0 to 50
            pause 1 '1ms
        next loop2 
    loop    

    return

DISABLE 'disable interrupts in handler
mode1:
if INTCON.0 = 1 then    'one of the GPIO<5:0> pins changed state (must be cleared in software)

    'HIGH LED2 'led2 on
    'PAUSE 50
    'LOW led2 'led2 off
    'PAUSE 50

    'Set the ModeFlag
    ModeFlag = ~ ModeFlag
endif
INTCON = %10001000  'enable GIE and GPIE; clear GPIF

RESUME 'return to where left off
ENABLE 'enable interrupts

end 'got here by mistake