diff --git a/dlls/x11drv/window.c b/dlls/x11drv/window.c
index 28f54172b65be8904ecf4d0b5aa015f92a8795e4..ce4c0f7f33bf3bcdf966017b6d1cf877a57e1d8d 100644
--- a/dlls/x11drv/window.c
+++ b/dlls/x11drv/window.c
@@ -560,7 +560,8 @@ int X11DRV_sync_whole_window_position( Display *display, WND *win, int zorder )
         {
             HWND next = GetWindow( win->hwndSelf, GW_HWNDNEXT );
 
-            if (root_window != DefaultRootWindow(display))
+            if (win->parent == GetDesktopWindow() &&
+                root_window != DefaultRootWindow(display))
             {
                 /* in desktop mode we need the sibling to belong to the same process */
                 while (next)