When execution RETURNs from Recording subroutine it will fall into the Recording subroutine by itself which then ends with a RETURN - not good.
Move your Goto Mainloop to after the two IF statements.
EDIT: But I now see you're already got that answered in the other thread...
Bookmarks