diff --git a/src/client.c b/src/client.c
index 832defe35e600a96e41fcea3d0e6cad4649543e2..0c31afb356ddd4ea1a60525d98c34d3f5c6a53e1 100644
--- a/src/client.c
+++ b/src/client.c
@@ -3849,11 +3849,17 @@ clientPassFocus (Client * c)
              */
             if (clientIsModal (c))
             {
-                c2 = clientGetModalFor (c);
+                 /* Modals are transients, and we aren"t interested in modal
+                    for group, so it safe to sue clientGetTransient because 
+                    it's really what we want...
+                  */
+                 c2 = clientGetTransient (c);
 
                 if (c2 && FLAG_TEST(c2->flags, CLIENT_FLAG_VISIBLE))
                 {
                     new_focus = c2;
+                    /* Usability: raise the parent, to grab user's attention */
+                    clientRaise (c2);
                 }
             }