Index: win32ss/user/ntuser/winpos.c
===================================================================
--- win32ss/user/ntuser/winpos.c	(revision 72479)
+++ win32ss/user/ntuser/winpos.c	(working copy)
@@ -1789,6 +1789,7 @@
 
    return TRUE;
 }
+VOID FASTCALL UserSyncAndPaintWindows(PWND pWnd, ULONG Flags);
 
 /* x and y are always screen relative */
 BOOLEAN FASTCALL
@@ -2241,6 +2242,20 @@
 #endif
    }
 
+   if ( !PosChanged &&
+         (WinPos.flags & SWP_FRAMECHANGED) &&
+        !(WinPos.flags & SWP_DEFERERASE) &&    // Prevent sending WM_SYNCPAINT message. 
+         VisAfter )//VisBefore )
+   {
+       PWND Parent = Window->spwndParent;
+       ERR("SWP_FRAMECHANGED no chg\n");
+       if ( !(Window->style & WS_CHILD) && (Parent) && (Parent->style & WS_CLIPCHILDREN))
+       {
+           ERR("SWP_FRAMECHANGED Parent WS_CLIPCHILDREN\n");
+           UserSyncAndPaintWindows( Parent, 4096);
+       }
+   }
+
    // Fix wine msg test_SetFocus, prevents sending WM_WINDOWPOSCHANGED.
    if ( VisBefore == NULL &&
         VisBeforeJustClient == NULL &&
@@ -3396,7 +3411,7 @@
    }
    else
    {
-       Window->hrgnNewFrame = (HRGN) 1;
+       Window->hrgnNewFrame = HRGN_WINDOW;
    }
    //// HACK 2
    Ret = co_WinPosSetWindowPos(Window, HWND_TOP, 0, 0, 0, 0, bRedraw ? flags : (flags|SWP_NOREDRAW) );
