Heh, I don't mind gotos if it's clear what's going on.  This is borderline though :)