GOSUBS don't have to RETURN immediately. You could do something like this: GOSUB @LOOPY @LOOPY DO STUFF IF THING == TRUE THEN RETURN GOTO @LOOPY Once you want to return to the original loop, make THING = TRUE and then it will return; otherwise it will stay in the loop you want it to. That said, it would probably just be best to GOTO your other loops, and then GOTO back to your main...