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