Before I try to create a smaller example of the problem, perhaps someone has had a similar issue and has fixed it.
Background: The window is created with some descriptive text at the top, along with a small set of menu options, and a %ps consisting of 4 nearly identical child windows. Each window contains 40 sets of text/integer/integer. The purpose is that the text portion is a transaction type and the two integers are the account number range. The 4 child windows each represent different types of data. Each %sh uses a set of nested %ob's to maintain formatting of the data; two columns of 20 items each.
Behavior: Upon initial entry to the window, if I immediately leave by selecting the menu option to return to the previous window (function callback returns a -1), the program becomes unresponsive (i.e. no selection possible with the mouse), the 'busy' cursor icon shows up a few times for a few seconds each time, and the program fully closes with no error indication. Tracing in the program shows that the winio@() final call that created the window never returns.
If, however, I use the mouse and place the cursor in any field of that first child window (selecting text or number, just getting the cursor there; neither matters), then choosing the menu option closes the window properly.
Also, if I select any other child window from the tabs, then select the menu option, the window closes properly.
If I close the window using the 'X', then the window closes properly.
In all of these scenarios, none of the underlying/displayed data is changed.
Has anyone seen this behavior? Or, is it time to pare it down to the essentials and see if I can get the smaller example to fail?