>>An afterthought - if form destruction is so slow (but by now we see Peter has reduced the problem to manageable sizes), perhaps hidden destruction would work. Hide the form, stop its code, then fire a timer and slowly release the objects at some lower level, one container at a time.
>
>This type of solution was already proposed by someone here. But it requires a modeless form. One might in that case even consider a design where the form isn't destroyed at all, but rather made invisible until it is reused for a next case.
Hiding a modal form passes control to the next line after oFrm.show(), by which time the timer could be triggered by form's .hide(), or if the form has to pass results to caller, then the caller may call oFrm.Harakiri().
With your optimizations now in place (I guess you removed stuff that's not used on weekends, holidays and the current guy's sick leaves and vacation), reusing the form would now require more checking for objects which may be missing (the next guy's vacation is at different time, had no sick leave).