Tracy,
>It does sound workable. We don't issue a clear all anywhere in the program until the program is closed. All variables are either declared in the main.prg and are available throughout the app (because for some reason or other they are needed for now to be available everywhere) or are private or local (depending on the requirement) in each prg that declares them. Thanks for idea, I think I'll play around with it!
Let us know how it turns out. FWIW, I'm still putting together several samples of using Session in similar situations for my SouthWest Fox "Session" session, which I'm also presenting to the Chicago user group in a few weeks. So, I have a vested interest in hearing if this solved your problems (assuming you actually had some problems).
Keep in mind, too, that inside the walls of the Session's dataenvironment you can CLOSE DATABASE or any other similar commands without touching the environment outside the class. Any code you call from inside Session also runs in the same data environment (unless it sets its own separate private datasession or sets to a specific dataenvironment that already exists).