In RDW_UpdateRgn(), if hRgn is zero, clear the windows update region
if it is an empty region.

diff --git a/windows/painting.c b/windows/painting.c
index fb6a03c..ad92841 100644
--- a/windows/painting.c
+++ b/windows/painting.c
@@ -459,7 +459,21 @@
 	    wndPtr->hrgnUpdate = (HRGN)1;
 	}
 	else
-	    hRgn = wndPtr->hrgnUpdate;	/* this is a trick that depends on code in PAINT_RedrawWindow() */
+        {
+            /* hRgn is zero */
+            if( wndPtr->hrgnUpdate > (HRGN)1)
+            {
+                GetRgnBox( wndPtr->hrgnUpdate, &r );
+                if( IsRectEmpty( &r ) )
+                {
+                    DeleteObject( wndPtr->hrgnUpdate );
+                    wndPtr->hrgnUpdate = 0;
+                    goto end;
+                }
+            }
+            hRgn = wndPtr->hrgnUpdate;	/* this is a trick that depends
+                                         * on code in RDW_Paint() */
+        }
 
 	if( !bHadOne && !(wndPtr->flags & WIN_INTERNAL_PAINT) )
             add_paint_count( wndPtr->hwndSelf, 1 );
@@ -665,7 +679,7 @@
 		{
 		    if (SendMessageW( hWnd, (bIcon) ? WM_ICONERASEBKGND : WM_ERASEBKGND,
                                       (WPARAM)hDC, 0 ))
-		    wndPtr->flags &= ~WIN_NEEDS_ERASEBKGND;
+                        wndPtr->flags &= ~WIN_NEEDS_ERASEBKGND;
 		    ReleaseDC( hWnd, hDC );
 		}
             }