diff --git a/windows/winpos.c b/windows/winpos.c
index 859a18726ec15cd02b314e3d8ed1e1cdf84fbbcc..35ad25a1228196218a885ebac541dfe2716cae25 100644
--- a/windows/winpos.c
+++ b/windows/winpos.c
@@ -2856,8 +2856,13 @@ Pos:  /* -----------------------------------------------------------------------
 		else
 		{
 		    if( (winpos.flags & SWP_AGG_NOPOSCHANGE) != SWP_AGG_NOPOSCHANGE )
+		    {
+			/* if window was not resized and not moved try to repaint itself */
+			if((winpos.flags & SWP_AGG_NOGEOMETRYCHANGE) == SWP_AGG_NOGEOMETRYCHANGE)
+			    uFlags |= SWP_EX_PAINTSELF;
 		         uFlags = SWP_CopyValidBits(wndPtr, &visRgn, &oldWindowRect, 
 							    &oldClientRect, uFlags);
+		    }
 	            else
 		    {
 			/* nothing moved, redraw frame if needed */