  	timeoutev = calctimo();
        if (timeoutev)
 --- window.c.orig	2003-12-05 08:45:41.000000000 -0500
-+++ window.c	2006-07-30 10:37:53.000000000 -0400
-@@ -1993,6 +1993,115 @@
++++ window.c	2006-08-08 10:39:45.000000000 -0400
+@@ -1993,6 +1993,130 @@
      }
  }
  

+  register unsigned char *s, *d = dest, *m;
+  register int x, y;
+  struct display *display = p->w_lastdisp;
+  int st = (display) ? D_status : 0;
+
+  if( p && p->w_mlines )
+    {
+      *d++ = p->w_width;                        /* screen width */
+      *d++ = p->w_height;                       /* screen height */
+      *d++ = (st) ? D_status_len : p->w_x;      /* cursor column */
+      *d++ = (st) ? STATLINE : p->w_y;          /* cursor row */
+
+      /* copy window image to buffer */
+      for( y = 0; y < p->w_height; y++ )
+        {
+          s = p->w_mlines[y].image;
+          x = p->w_width;
+          if( st && (y == STATLINE) )
+            for( m = D_status_lastmsg; *m && x; *d++ = *m++, s++, x-- );
+          for( ; x; *d++ = *s++, x-- );
+        }
+
+      /* copy attributes from window image to buffer */

+              *d++ = fg | (bg << 4);
+            }
+        }
+
+      if( st )
+        {
+          memset(d, 0X70, p->w_width);
+          d += p->w_width;
+        }
+#else /* COLOR */
+      {
+        int count = dest[0] * dest[1];
+        memset(d, 0X07, count);
+        d += count;
+      }
+#endif /* COLOR */
+
+      *d++ = p->w_number;  /* window number */
