updated for version 7.0198
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index 1502e0c..c608f9d 100644
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -3456,6 +3456,9 @@
      * otherwise the hints don't work. */
     width  = gui_get_base_width();
     height = gui_get_base_height();
+# ifdef FEAT_MENU
+    height += tabpageline_height() * gui.char_height;
+# endif
 # ifdef HAVE_GTK2
     width  += get_menu_tool_width();
     height += get_menu_tool_height();
diff --git a/src/option.c b/src/option.c
index cca91cc..25ddafb 100644
--- a/src/option.c
+++ b/src/option.c
@@ -2181,6 +2181,13 @@
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    },
+    {"tabline",	    "tal",  P_NUM|P_VI_DEF|P_RALL,
+#ifdef FEAT_WINDOWS
+			    (char_u *)&p_tal, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)1L, (char_u *)0L}},
     {"tabstop",	    "ts",   P_NUM|P_VI_DEF|P_RBUF,
 			    (char_u *)&p_ts, PV_TS,
 			    {(char_u *)8L, (char_u *)0L}},
@@ -7259,6 +7266,12 @@
     {
 	last_status(FALSE);
     }
+
+    /* (re)set tab page line */
+    else if (pp == &p_tal)
+    {
+	shell_new_rows();	/* recompute window positions and heights */
+    }
 #endif
 
 #ifdef FEAT_GUI
diff --git a/src/option.h b/src/option.h
index f1714ae..d3c01ec 100644
--- a/src/option.h
+++ b/src/option.h
@@ -577,6 +577,7 @@
 #endif
 #ifdef FEAT_WINDOWS
 EXTERN long	p_ls;		/* 'laststatus' */
+EXTERN long	p_tal;		/* 'tabline' */
 #endif
 EXTERN char_u	*p_lcs;		/* 'listchars' */
 
diff --git a/src/proto/gui.pro b/src/proto/gui.pro
index d9dea65..eacc2ac 100644
--- a/src/proto/gui.pro
+++ b/src/proto/gui.pro
@@ -34,6 +34,7 @@
 int gui_xy2colrow __ARGS((int x, int y, int *colp));
 void gui_menu_cb __ARGS((vimmenu_T *menu));
 void gui_init_which_components __ARGS((char_u *oldval));
+void gui_remove_scrollbars __ARGS((void));
 void gui_create_scrollbar __ARGS((scrollbar_T *sb, int type, win_T *wp));
 scrollbar_T *gui_find_scrollbar __ARGS((long ident));
 void gui_drag_scrollbar __ARGS((scrollbar_T *sb, long value, int still_dragging));
diff --git a/src/proto/window.pro b/src/proto/window.pro
index a1808bc..0ff745a 100644
--- a/src/proto/window.pro
+++ b/src/proto/window.pro
@@ -26,6 +26,7 @@
 void shell_new_columns __ARGS((void));
 void win_size_save __ARGS((garray_T *gap));
 void win_size_restore __ARGS((garray_T *gap));
+int win_comp_pos __ARGS((void));
 void win_setheight __ARGS((int height));
 void win_setheight_win __ARGS((int height, win_T *win));
 void win_setwidth __ARGS((int width));
diff --git a/src/screen.c b/src/screen.c
index ba5475b..9005efa 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -701,8 +701,14 @@
     if (clip_star.available && clip_isautosel())
 	clip_update_selection();
 #endif
+
     win_update(wp);
+
 #ifdef FEAT_WINDOWS
+    /* When the screen was cleared redraw the tab pages line. */
+    if (redraw_tabpage)
+	draw_tabpage();
+
     if (wp->w_redr_status
 # ifdef FEAT_CMDL_INFO
 	    || p_ru
@@ -7057,6 +7063,9 @@
 
     win_rest_invalid(firstwin);
     redraw_cmdline = TRUE;
+#ifdef FEAT_WINDOWS
+    redraw_tabpage = TRUE;
+#endif
     if (must_redraw == CLEAR)	/* no need to clear again */
 	must_redraw = NOT_VALID;
     compute_cmdrow();
@@ -8468,11 +8477,14 @@
 	    c = '/';
 	else
 	    c = '\\';
-	screen_putchar(c, 0, col++, attr);
+	if (t_colors < 8)
+	    screen_putchar(c, 0, col++, attr);
 
 	if (tp->tp_topframe != topframe)
 	    attr = attr_nosel;
 
+	screen_putchar(' ', 0, col++, attr);
+
 	if (tp->tp_topframe == topframe)
 	    wp = curwin;
 	else
@@ -8488,11 +8500,17 @@
 	    len = tabwidth;
 	screen_puts_len(NameBuff, len, 0, col, attr);
 	col += len;
+	screen_putchar(' ', 0, col++, attr);
     }
 
-    screen_putchar('\\', 0, col++, attr);
-    while (col < Columns)
-	screen_putchar('_', 0, col++, attr_fill);
+    if (t_colors < 8)
+    {
+	screen_putchar('\\', 0, col++, attr);
+	c = '_';
+    }
+    else
+	c = ' ';
+    screen_fill(0, 1, col, (int)Columns, c, c, attr_fill);
 }
 #endif
 
diff --git a/src/structs.h b/src/structs.h
index a743a4f..893b826 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -1555,11 +1555,13 @@
 typedef struct tabpage_S tabpage_T;
 struct tabpage_S
 {
-    tabpage_T	    *tp_next;	/* next tabpage or NULL */
-    frame_T	    *tp_topframe;
-    win_T	    *tp_curwin;	/* current window in this Tab page */
-    win_T	    *tp_firstwin; /* first window in this Tab page */
-    win_T	    *tp_lastwin;  /* last window in this Tab page */
+    tabpage_T	    *tp_next;	    /* next tabpage or NULL */
+    frame_T	    *tp_topframe;   /* topframe for the windows */
+    win_T	    *tp_curwin;	    /* current window in this Tab page */
+    win_T	    *tp_firstwin;   /* first window in this Tab page */
+    win_T	    *tp_lastwin;    /* last window in this Tab page */
+    long	    tp_old_Rows;    /* Rows when Tab page was left */
+    long	    tp_old_Columns; /* Columns when Tab page was left */
 };
 
 /*
diff --git a/src/syntax.c b/src/syntax.c
index 0db3a6e..2574f3d 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -6079,9 +6079,8 @@
 	"DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red",
 	"PmenuThumb cterm=reverse gui=reverse",
 	"PmenuSbar ctermbg=Grey guibg=Grey",
-	"TabPage term=underline cterm=underline ctermbg=grey gui=underline guibg=grey",
-	"TabPageSel term=reverse,bold cterm=reverse,bold gui=reverse,bold",
-	"TabPageFill term=underline cterm=underline ctermbg=grey gui=underline guibg=grey",
+	"TabPageSel term=bold cterm=bold gui=bold",
+	"TabPageFill term=reverse cterm=reverse gui=reverse",
 	NULL
     };
 
@@ -6110,6 +6109,7 @@
 	"DiffAdd term=bold ctermbg=LightBlue guibg=LightBlue",
 	"DiffChange term=bold ctermbg=LightMagenta guibg=LightMagenta",
 	"DiffDelete term=bold ctermfg=Blue ctermbg=LightCyan gui=bold guifg=Blue guibg=LightCyan",
+	"TabPage term=underline cterm=underline ctermbg=LightGrey gui=underline guibg=LightGrey",
 	NULL
     };
 
@@ -6138,6 +6138,7 @@
 	"DiffAdd term=bold ctermbg=DarkBlue guibg=DarkBlue",
 	"DiffChange term=bold ctermbg=DarkMagenta guibg=DarkMagenta",
 	"DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan gui=bold guifg=Blue guibg=DarkCyan",
+	"TabPage term=underline cterm=underline ctermbg=DarkGrey gui=underline guibg=DarkGrey",
 	NULL
     };
 
diff --git a/src/version.h b/src/version.h
index 6ff870f..0f561bc 100644
--- a/src/version.h
+++ b/src/version.h
@@ -36,5 +36,5 @@
 #define VIM_VERSION_NODOT	"vim70aa"
 #define VIM_VERSION_SHORT	"7.0aa"
 #define VIM_VERSION_MEDIUM	"7.0aa ALPHA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2006 Feb 14)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2006 Feb 14, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2006 Feb 15)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2006 Feb 15, compiled "