diff --git a/src/transients.c b/src/transients.c
index 8dab4c0a7c7b4211c97060da8bc48bc4bbd6c9f1..6a61f4a0de197b39827fc27b92986d511b681c53 100644
--- a/src/transients.c
+++ b/src/transients.c
@@ -347,6 +347,11 @@ clientGetTransientFor (Client * c)
             continue;
         }
 
+        if (c->win_layer > c2->win_layer)
+        {
+            break;
+        }
+
         if (clientIsDirectTransient (c) && clientIsTransientFor (c, c2))
         {
             parents = g_list_append (parents, c2);