I applied your patch and now XEmacs seems to be stable for longer time.  At
least, I've been doing my work for several hours without crashes.
 --- xlwtabs.c~	Mon Jan 03 09:36:21 2000
 +++ xlwtabs.c	Tue Jan 18 10:01:31 2000
 @@ -1255,6 +1255,7 @@
  	if( !XtIsRealized(w) ) {
  	  tw->tabs.topWidget = w ;
  	  tw->tabs.needs_layout = True ;
 +	  tw->tabs.hilight = NULL; /* The highlight tab might disappear. */
  	  return ;
  	}
  
 @@ -1265,6 +1266,14 @@
  #endif
  
  	tab = (TabsConstraints) w->core.constraints ;
 +
 +	/* Unhighlight before we start messing with the stacking order. */
 +	if( tw->tabs.hilight != NULL )
 +	  {
 +	    DrawHighlight(tw, tw->tabs.hilight, True) ;
 +	    tw->tabs.hilight = NULL;
 +	  }
 +
  	if( tab->tabs.row == 0 )
  	{
  	  /* Easy case; undraw current top, undraw new top, assign new
 @@ -1307,8 +1316,6 @@
  
  	if( XtIsRealized(t) && w != tw->tabs.hilight )
  	{
 -	  if( tw->tabs.hilight != NULL )
 -	    DrawHighlight(tw, tw->tabs.hilight, True) ;
  	  if( w != NULL )
  	    DrawHighlight(tw, w, False) ;
  	} 
But I ran across some strange behavior of gutters, which is described by this
test case:
-------------------------------------------------------------------------------
(progn (custom-set-variables '(gutter-visible-p nil))
       (let ((buf (generate-new-buffer "Test")))
         (switch-to-buffer buf)
         (insert "Where is " (buffer-name buf) " in tabs?"))
       (custom-set-variables '(gutter-visible-p t)))
-------------------------------------------------------------------------------
Let's suppose this test case is stored in test.el and do the following:
hookah : npakoulin >$ xemacs -vanilla -l test.el &
What we get is 
but should be (as I see it)
-------------------------------------------------------------------------------
Nick.