diff -p -r zoom-1.0.1beta3a/configure zoom-1.0.1beta3b/configure
*** zoom-1.0.1beta3a/configure	Fri Aug 30 22:54:59 2002
--- zoom-1.0.1beta3b/configure	Thu Sep 12 19:29:29 2002
*************** fi
*** 980,986 ****
  PATH_SEPARATOR="$ac_path_separator"
  rm -f conftest.sh
  
! VERSION=1.0.1beta3a
  PACKAGE=zoom
  
      # Extract the first word of "tput", so it can be a program name with args.
--- 980,986 ----
  PATH_SEPARATOR="$ac_path_separator"
  rm -f conftest.sh
  
! VERSION=1.0.1beta3b
  PACKAGE=zoom
  
      # Extract the first word of "tput", so it can be a program name with args.
diff -p -r zoom-1.0.1beta3a/configure.in zoom-1.0.1beta3b/configure.in
*** zoom-1.0.1beta3a/configure.in	Fri Aug 30 22:51:49 2002
--- zoom-1.0.1beta3b/configure.in	Thu Sep 12 19:24:23 2002
***************
*** 2,8 ****
  AC_PREREQ(2.13)
  AC_INIT()
  
! VERSION=1.0.1beta3a
  PACKAGE=zoom
  
  UTIL_DISPLAY_INIT()
--- 2,8 ----
  AC_PREREQ(2.13)
  AC_INIT()
  
! VERSION=1.0.1beta3b
  PACKAGE=zoom
  
  UTIL_DISPLAY_INIT()
diff -p -r zoom-1.0.1beta3a/src/carbondisplay.c zoom-1.0.1beta3b/src/carbondisplay.c
*** zoom-1.0.1beta3a/src/carbondisplay.c	Fri Aug 30 14:46:50 2002
--- zoom-1.0.1beta3b/src/carbondisplay.c	Thu Sep 12 19:40:06 2002
*************** int        window_available = 0;
*** 95,100 ****
--- 95,102 ----
  int        quitflag = 0;
  static int updating = 0;
  
+ static int updatecount = 0;
+ 
  static int scrollpos = 0;
  
  char carbon_title[256];
*************** void display_update_region(XFONT_MEASURE
*** 300,305 ****
--- 302,322 ----
  {
    Rect rct;
  
+   updatecount++;
+ 
+   if (updatecount == 20)
+     {
+       rct.top = 0;
+       rct.left = 0;
+       rct.right = total_x;
+       rct.bottom = total_y;
+       InvalWindowRect(zoomWindow, &rct);
+     }
+   else
+     {
+       return;
+     }
+ 
    rct.top    = top;
    rct.left   = left;
    rct.right  = right;
*************** static void draw_window(int   win,
*** 1130,1135 ****
--- 1147,1154 ----
  
    thePort = GetQDGlobalsThePort();
    GetPortBounds(thePort, &portRect);
+ 
+   updatecount = 0;
  
    dassert(rct != NULL);
  
diff -p -r zoom-1.0.1beta3a/src/xdisplay.c zoom-1.0.1beta3b/src/xdisplay.c
*** zoom-1.0.1beta3a/src/xdisplay.c	Fri Aug 30 22:55:12 2002
--- zoom-1.0.1beta3b/src/xdisplay.c	Thu Sep 12 19:44:23 2002
*************** XdbeBackBuffer x_backbuffer = None;
*** 95,100 ****
--- 95,101 ----
  #endif
  
  static Region dregion = None;
+ static int    updatecount = 0;
  static int    resetregion = 0;
  
  static int scroll_pos    = 20;
*************** static void draw_window()
*** 1366,1371 ****
--- 1367,1373 ----
    XFree(dregion);
    dregion = None;
  
+   updatecount = 0;
    resetregion = 1;
  }
  
*************** void display_update_region(XFONT_MEASURE
*** 2356,2361 ****
--- 2358,2379 ----
  
    if (dregion == None)
      dregion = XCreateRegion();
+ 
+   updatecount++;
+   if (updatecount == 20)
+     {
+       XFree(dregion);
+       dregion = XCreateRegion();
+ 
+       clip.x = 0;
+       clip.y = 0;
+       clip.width = total_x;
+       clip.height = total_y;
+       XUnionRectWithRegion(&clip, dregion, dregion);
+       return;
+     }
+   else if (updatecount > 20)
+     return;
  
    clip.x = left + BORDER_SIZE; clip.y = top + BORDER_SIZE;
    clip.width = right - left; clip.height = bottom - top;

