I have this code in an int handler

Code:
'check what pin triggered the int
'we have the time of the header pulse to manage that work
if (head == 0) THEN
    pin = 0             'set the number of the pin for the score managment (update_scores)
    GOTO got_pin        'bypass 
ENDIF
if (front == 0) THEN
    pin = 1
    GOTO got_pin        'bypass 
ENDIF
if (back == 0) THEN
    pin = 2
    GOTO got_pin        'bypass 
ENDIF
if (larm == 0) THEN
    pin = 3
    GOTO got_pin        'bypass 
ENDIF
if (rarm == 0) THEN
    pin = 4
    GOTO got_pin        'bypass 
ENDIF
'if (porta.5 == 1) THEN
'    pin = 5
'    GOTO got_pin        'bypass 
'ENDIF
'ELSE:
LCDOUT $fe,1,"0pin = ",#pin
PAUSE 2000

pin = 111

got_pin:

'TEST block
LCDOUT $fe,1,"1pin = ",#pin
GOTO finish
I was expecting to have a display of "1pin = " and the pin nr but guess what I guess:

"0pin = " and the pin number.
It completely ignores my GOTO got_pin.
How can it be??
I've spen many hours working on my program so maybe the error is so obvious I don't see it...

Could someone open my eyes please?