Index: win32ss/user/ntuser/window.c =================================================================== --- win32ss/user/ntuser/window.c (revision 62321) +++ win32ss/user/ntuser/window.c (working copy) @@ -2313,6 +2313,17 @@ ParentWindow->rcClient.top); } */ + /* correct child window coordinates if mirroring on parent is enabled */ + if (ParentWindow != NULL) + { + if ( ((Cs->style & WS_CHILD) == WS_CHILD) && + ((ParentWindow->ExStyle & WS_EX_LAYOUTRTL) == WS_EX_LAYOUTRTL)) + { + Window->rcWindow.right = ParentWindow->rcClient.right - (Window->rcWindow.left - ParentWindow->rcClient.left); + Window->rcWindow.left = Window->rcWindow.right - Size.cx; + } + } + Window->rcClient = Window->rcWindow; /* Link the window */ Index: win32ss/user/user32/windows/winpos.c =================================================================== --- win32ss/user/user32/windows/winpos.c (revision 62321) +++ win32ss/user/user32/windows/winpos.c (working copy) @@ -218,8 +218,6 @@ Delta.y -= ToWnd->rcClient.top; } - if (mirror_from) Delta.x = -Delta.x; - for (i = 0; i != cPoints; i++) { lpPoints[i].x += Delta.x;