Help Please..... Thank you for reading

I have a loop (Mainloop) that is looking at some RTC (DS1302) values and switching an LED depending on time of day.
All is good as is.

What I am attempting to do now is put a simple active low Press button in the circuit so I hit the button the LED is on for an amount of time. I have enabled my pullups OPTION_REG.7=0 and am using PORTB.3 as the input, button is switching 0v onto this pin when pressed.

Main loop looks like this... suspect code in red :-

Code:
mainloop:   GOSUB gettime        ' Read the time from the RTC

            IF (RTCHour=$17) AND (RTCMin=$15) THEN  
            GOSUB Message ' flash 
            ENDIF
            
            IF (RTCHour=$18) AND (RTCMin=$15) THEN  
            GOSUB Message ' flash 
            ENDIF
            
            IF (RTCHour=$19) AND (RTCMin=$15) THEN  
            GOSUB Message ' flash 
            ENDIF
            
            IF (RTCHour=$20) AND (RTCMin=$15) THEN 
            GOSUB Led_On ' Led on
            ENDIF
            
            IF (RTCHour=$21) AND (RTCMin=$45) THEN 
            GOSUB Led_Off ' Led off
            ENDIF
            
            IF PORTB.3=0 THEN
            high led
            pause 1000
            Low led
            ENDIF

            GOTO mainloop        ' Do it forever and ever and ever
        
Led_On:     HIGH Led
            RETURN 
            
Led_Off:    LOW Led
            RETURN
What my issue is is the LED is on all the time in 1second bursts regardless of Button in or out..... I have tried with real hard pullups 10k but same outcome.

I would expect the LED to come on for a second with a button press..... Well that is what I want (Just a lamp test function)


Thank you again for reading ...... and hopefully pointing out the obvious

BR
Andy