Die Sprungmarke könnte auch problematisch sein. Soweit ich weiß, muss das Ziel einer Sprungmarke im selben Anweisungsblock liegen wie das goto selbst.
Versuche mal, ohne Sprungmarken auszukommen; die machen es oft nur schwerer, dem Programmfluss zu folgen.