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 "
