diff -Nur xfwm4-4.6.1.orig/src/focus.c xfwm4-4.6.1/src/focus.c --- xfwm4-4.6.1.orig/src/focus.c 2009-04-15 01:58:59.000000000 -0600 +++ xfwm4-4.6.1/src/focus.c 2009-07-28 19:31:44.000000000 -0600 @@ -214,7 +214,12 @@ { Client *c2 = clientGetFocus(); - if ((c2 != NULL) && (c2->win_layer == c->win_layer)) + /* + * Place windows under the currently focused only if focus + * stealing prevention had prevented the focus transition, + * otherwise, leave the unfocused window on top. + */ + if ((c2 != NULL) && (c2->win_layer == c->win_layer) && prevented) { clientSortRing(c); clientLower (c, c2->frame);