Thanks for Shawn's suggestion,
quote:
I think the real solution to this, and better programming practice, is that one should never want to really exit from within a UDF or sub-routine anyways ... should always exit from the mainline ...

At first, I was ticked at the criticism of my programming, [Mad] but his criticism gave me the solution to my problem: in 3.63, I can set an error variable in the subroutine, and check the variable in the mainline, thus exiting without an error (I've removed the progress checking).
code:
do
gosub "subscript"
if $SubErr
exit 1
endif
until 1 = 1
exit 0
:subscript
$SubErr = 1
return

Always trying to improve my listening skills...
Sam