>Oops. I forgot to mention that all this is in my base form framework so I cover all ways of closing a form. My QueryUnload code has a This.Release() as the last line if all goes well in that method.
Just a couple of ideas, buy you turn a VFP Event around into a method? It sounds like calling the Init() and then adding Show() to the end of it. Maybe the ultimate exit code would be calling a custom method instead of release to close the form programatically, I would have in a ReleaseForm() method something like:
if this.QueryUnload
This.BeforeRelease()
This.Release()
This.AfterRelease()
endif
Then, you know the Event order won't pull somfin goofy when you hit the "X".