Fixed scroll bug in ScrollWindowEx32 which caused garbage on screen
outside desktop window with gtwin.exe (Dutch banking program).

diff --git a/windows/scroll.c b/windows/scroll.c
index b67d00a..9f9062d 100644
--- a/windows/scroll.c
+++ b/windows/scroll.c
@@ -354,16 +354,18 @@
 	    if( dy > 0 ) dst.y = (src.y = dc->w.DCOrgY + cliprc.top) + dy;
 	    else src.y = (dst.y = dc->w.DCOrgY + cliprc.top) - dy;
 
-	    if( bUpdate ) /* handles non-Wine windows hanging over the scrolled area */
-		TSXSetGraphicsExposures( display, dc->u.x.gc, True );
-
-	    TSXSetFunction( display, dc->u.x.gc, GXcopy );
-	    TSXCopyArea( display, dc->u.x.drawable, dc->u.x.drawable, dc->u.x.gc, 
-		       src.x, src.y, cliprc.right - cliprc.left - abs(dx),
-		       cliprc.bottom - cliprc.top - abs(dy), dst.x, dst.y );
-
-	    if( bUpdate )
-		TSXSetGraphicsExposures( display, dc->u.x.gc, False );
+            if ((cliprc.right - cliprc.left > abs(dx)) &&
+                (cliprc.bottom - cliprc.top > abs(dy)))
+            {
+                if (bUpdate) /* handles non-Wine windows hanging over the scrolled area */
+                    TSXSetGraphicsExposures( display, dc->u.x.gc, True );
+                TSXSetFunction( display, dc->u.x.gc, GXcopy );
+                TSXCopyArea( display, dc->u.x.drawable, dc->u.x.drawable, dc->u.x.gc, 
+                             src.x, src.y, cliprc.right - cliprc.left - abs(dx),
+                             cliprc.bottom - cliprc.top - abs(dy), dst.x, dst.y );
+                if (bUpdate)
+                    TSXSetGraphicsExposures( display, dc->u.x.gc, False );
+            }
 
 	    if( dc->w.hVisRgn && bUpdate )
 	    {