Back in the old days of the Varnet application, there was a facility using applhelp.p in which a user could press a function key and leap from the middle of one program over to another. Unfortunately, since pretty much all of the CRUD functions in that software were structured of updates to a DB buffer, when one did that, one was always in the middle of a transaction. Depending on setup, this meant that users could leap out to the menu system, do a bunch of work, print the results of that work, and then finally hit F4 and find themselves back in the middle of the function they left from. If they forgot why they were there, it was natural to F4 again, undoing the open transaction ... and ALL of the work that had been done in between. You might have something similar in which normal processing is not a problem, but a special execution path is resulting in a long open transaction.