[MGS] notes that if you are creating a transient window, the full 'transient effect' may not kick in properly until the window has been in a fully unmapped state. It's possible that you may not even notice that it's not fully transient. From my understanding: 1. The transient window should always remain on-top, or in front, of the parent window. 2. Minimizing the parent window should also minimize/withdraw the transient window. 3. The geometry of the transient window should not change when moving/resizing/minimizing/maximizing the parent window. 4. The transient window should never have an application (taskbar) icon. 5. The [window manager] should not draw minimize/maximize buttons for the transient window (only a close button). Some of these (probably just 5) may be dependent on the window manager. If your window is not fully transient (as mentioned above) 1, 3 and/or 5 may not happen. If you're writing code to create a transient window, you should either: * wait until your toplevel is mapped, then make it transient, then withdraw and deiconify, OR * create your toplevel, withdraw it, update idletasks, mark as transient, and then deiconify. I favor the second approach, as follows: toplevel .t wm withdraw .t update idletasks wm transient .t . wm deiconify .t