Truncate dest blit rectangle down to surface size.

diff --git a/dlls/ddraw/dsurface/main.c b/dlls/ddraw/dsurface/main.c
index fb66438..d5843e1 100644
--- a/dlls/ddraw/dsurface/main.c
+++ b/dlls/ddraw/dsurface/main.c
@@ -232,7 +232,12 @@
 	}
     }
     if (src) assert((xsrc.bottom-xsrc.top) <= sdesc.dwHeight);
-    assert((xdst.bottom-xdst.top) <= ddesc.dwHeight);
+
+    /* truncate dst rect to dest surface. */
+    if ((xdst.bottom-xdst.top) > ddesc.dwHeight)
+	xdst.bottom = xdst.top+ddesc.dwHeight;
+    if ((xdst.right-xdst.left) > ddesc.dwWidth)
+	xdst.right = xdst.left+ddesc.dwWidth;
 
     bpp = GET_BPP(ddesc);
     srcheight = xsrc.bottom - xsrc.top;