Marc,
Here's a final, and perhaps goofy, thought on this. How about creating a non-visual error trapping routine for the DataEnvironment and/or cursors? In it perhaps you could include code that could retrieve all the other open forms (loop through the _SCREEN.Forms), and anything else you want to save. Not much overhead, since you wouldn't create the real handler until the event fired...
Well, I said it might be a little goofy:-)
George
George
Ubi caritas et amor, deus ibi est