The way transients come and go seems to be somewhat unpredictable, and it also varies between operating system versions (or more probably the X server); I suspect this may involve obscure bugs, not just in rizzle, but maybe in X or mwm...
Obviously, I'm trying to avoid this happening if at all possible, but it's not easy to keep track of what's going on when transients come and go as they do, especially if the window ids sometimes become invalid in the process (and sometimes not, since you can never tell, with X being asynchronous...)
You can also disable rolling-up of individual window classes by using the isFragile resource. For example, if iMonkey has problems with windows disappearing (or if you just don't want iMonkey windows to be rolled up), add this line to your .Xdefaults (assuming the window class is IMonkey):
IMonkey*isFragile: trueIf you find other common applications that have this problem, please let me know, so I can try and do something about it. If you really want to make things easier for me, you could run xprop on the offended window to get its resource and class name:
$ xprop | grep WM_CLASS WM_CLASS(STRING) = "iconbox", "Mwm" $Within reason, of course... I don't want to have to release lots of 'bugfixes' for obscure applications that only one or two of your clients use. But if it is a particularly important and widely-used application (as mwm is), it makes sense to hard-code it so as not to annoy everybody who happens to forget to define the resource.