Hi Ken,
You've hit on one of my favorites. Back in college I was taught that, unless there are overriding considerations, the return should be the last line. Have I ever run into one? Well, not since FP 2.x. One of the things I never did there was to allow GENSCRN to generate the code to open and close the tables. If the tables couldn't be opened for some reason, the user was left cancel out of numerous errors that had nothing to do with the reason the table couldn't be opened. This was because the code had already generated the information concerning the screen. What I ended up doing was calling a function that would open the necessary tables returning a logical value indicating success or failure. Unfortunately, there was no way to allow the program to branch past the code. So, the return statement was in SECTION 1 if the routine failed.
Admittedly, there were some additional considerations as to why I didn't let GENSCRN create the code, but this was the principal one that got me going in this direction.
VFP's another animal, and I haven't yet found a reason to "break" this rule. However, I've always believed that one should keep their eyes open and not blindly follow such rules when other considerations might dictate otherwise.
George
Ubi caritas et amor, deus ibi est