Ken, this is a different problem. I was running SDT and closed the files from the command window. SDT then puked because it couldn't find any open files and it couldn't get out of the error routine.
>I build my app on a global variable: goapp. On it is a method: ssiCloseAll(). There is also a property goapp.ssidatasession that tracks the largest datasession number. Each form checks to see if it's datasession is larger than goapp.ssidatasession and, if so, it updates it.
>
>The ssiCloseAll method adds 10 to that number just to be sure all datasessions are covered (like sdt, etc). It then sets itself to each datasession and issues CLOSE ALL. You need to trap error 1540 (session number is invalid). I never use CLOSE ALL anywhere anymore, but rather call the method. This ended all my problems like you mention. This method also restores SET PROCEDURE since it gets closed also.
Craig Berntson
MCSD, Microsoft .Net MVP, Grape City Community Influencer