diff --git a/mi/miexpose.c b/mi/miexpose.c
index d56d187..2591299 100644
--- a/mi/miexpose.c
+++ b/mi/miexpose.c
@@ -254,6 +254,10 @@ miHandleExposures(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable,
     /* intersect with visible areas of dest */
     REGION_INTERSECT(pscr, &rgnExposed, &rgnExposed, prgnDstClip);
 
+    /* intersect with client clip area. */
+    if (pGC->clientClipType != CT_NONE)
+	REGION_INTERSECT(pscr, &rgnExposed, &rgnExposed, pGC->clientClip);
+
     /*
      * If we have LOTS of rectangles, we decide to take the extents
      * and force an exposure on that.  This should require much less
