diff --git a/unix/xserver/hw/vnc/vncHooks.cc b/unix/xserver/hw/vnc/vncHooks.cc
index 6364ab3..6d903a4 100644
--- a/unix/xserver/hw/vnc/vncHooks.cc
+++ b/unix/xserver/hw/vnc/vncHooks.cc
@@ -554,23 +554,27 @@
 {
   ScreenPtr pScreen = pDst->pDrawable->pScreen;
   vncHooksScreenPtr vncHooksScreen = vncHooksScreenPrivate(pScreen);
-  BoxRec box;
   PictureScreenPtr ps = GetPictureScreen(pScreen);
-  rfb::Rect rect1, rect2;
 
-  rect1.setXYWH(pDst->pDrawable->x + xDst,
-		pDst->pDrawable->y + yDst,
-		width,
-		height);
-      
-  rect2 = rect1.intersect(vncHooksScreen->desktop->getRect());
-  if (!rect2.is_empty()) {
-    box.x1 = rect2.tl.x;
-    box.y1 = rect2.tl.y;
-    box.x2 = rect2.br.x;
-    box.y2 = rect2.br.y;
-    RegionHelper changed(pScreen, &box, 0);
-    vncHooksScreen->desktop->add_changed(changed.reg);
+  if (pDst->pDrawable->type == DRAWABLE_WINDOW &&
+      ((WindowPtr) pDst->pDrawable)->viewable) {
+    BoxRec box;
+    rfb::Rect rect1, rect2;
+
+    rect1.setXYWH(pDst->pDrawable->x + xDst,
+		  pDst->pDrawable->y + yDst,
+		  width,
+		  height);
+        
+    rect2 = rect1.intersect(vncHooksScreen->desktop->getRect());
+    if (!rect2.is_empty()) {
+      box.x1 = rect2.tl.x;
+      box.y1 = rect2.tl.y;
+      box.x2 = rect2.br.x;
+      box.y2 = rect2.br.y;
+      RegionHelper changed(pScreen, &box, 0);
+      vncHooksScreen->desktop->add_changed(changed.reg);
+    }
   }
 
   ps->Composite = vncHooksScreen->Composite;
