Index: src/terminal-window.c
===================================================================
--- src/terminal-window.c	(revision 3274)
+++ src/terminal-window.c	(working copy)
@@ -72,6 +72,8 @@
   guint menubar_visible : 1;
   guint use_default_menubar_visibility : 1;
 
+  guint tabs_always_visible : 1;
+
   /* Compositing manager integration */
   guint have_argb_visual : 1;
 
@@ -149,6 +151,8 @@
                                                TerminalWindow *window);
 static void view_menubar_toggled_callback     (GtkToggleAction *action,
                                                TerminalWindow *window);
+static void view_tabs_always_toggled_callback (GtkToggleAction *action,
+                                               TerminalWindow *window);
 static void view_fullscreen_toggled_callback  (GtkToggleAction *action,
                                                TerminalWindow *window);
 static void view_zoom_in_callback             (GtkAction *action,
@@ -1047,10 +1051,13 @@
   gboolean show_tabs;
   guint num;
 
-  num = gtk_notebook_get_n_pages (GTK_NOTEBOOK (priv->notebook));
+  if (!priv->tabs_always_visible)
+    {
+      num = gtk_notebook_get_n_pages (GTK_NOTEBOOK (priv->notebook));
 
-  show_tabs = (num + change) > 1;
-  gtk_notebook_set_show_tabs (GTK_NOTEBOOK (priv->notebook), show_tabs);
+      show_tabs = (num + change) > 1;
+      gtk_notebook_set_show_tabs (GTK_NOTEBOOK (priv->notebook), show_tabs);
+    }
 }
 
 static GtkNotebook *
@@ -1704,6 +1711,10 @@
         NULL,
         G_CALLBACK (view_menubar_toggled_callback),
         FALSE },
+      { "ViewTabsAlways", NULL, N_("Always Show Tabs"), NULL, /* FIXME: add mnemonic */
+        NULL,
+        G_CALLBACK (view_tabs_always_toggled_callback),
+        FALSE },
       { "ViewFullscreen", NULL, N_("_Full Screen"), NULL,
         NULL,
         G_CALLBACK (view_fullscreen_toggled_callback),
@@ -1835,6 +1846,8 @@
   terminal_window_set_menubar_visible (window, TRUE);
   priv->use_default_menubar_visibility = TRUE;
 
+  priv->tabs_always_visible = FALSE;
+
   terminal_window_update_size_to_menu (window);
 
   /* We have to explicitly call this, since screen-changed is NOT
@@ -2268,6 +2281,44 @@
   return priv->menubar_visible;
 }
 
+void
+terminal_window_set_tabs_always_visible (TerminalWindow *window,
+                                         gboolean        setting)
+{
+  TerminalWindowPrivate *priv = window->priv;
+  GtkAction *action;
+
+  if (setting == priv->tabs_always_visible)
+	  return;
+	
+  priv->tabs_always_visible = setting;
+  
+  action = gtk_action_group_get_action (priv->action_group, "ViewTabsAlways");
+  gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), setting);
+
+  if (priv->terms == 1)
+    {
+      gtk_notebook_set_show_tabs (GTK_NOTEBOOK (priv->notebook), setting);
+  
+      if (priv->active_screen)
+        {
+          _terminal_debug_print (TERMINAL_DEBUG_GEOMETRY,
+                                 "[window %p] setting size after toggling tabs visibility\n",
+                                 window);
+
+          terminal_window_set_size (window, priv->active_screen, TRUE);
+        }
+    }
+}
+
+gboolean
+terminal_window_get_tabs_always_visible (TerminalWindow *window)
+{
+  TerminalWindowPrivate *priv = window->priv;
+  
+  return priv->tabs_always_visible;
+}
+
 GtkWidget *
 terminal_window_get_notebook (TerminalWindow *window)
 {
@@ -3087,6 +3138,13 @@
 }
 
 static void
+view_tabs_always_toggled_callback (GtkToggleAction *action,
+                                   TerminalWindow *window)
+{
+  terminal_window_set_tabs_always_visible (window, gtk_toggle_action_get_active (action));
+}
+
+static void
 view_fullscreen_toggled_callback (GtkToggleAction *action,
                                   TerminalWindow *window)
 {
Index: src/terminal-window.h
===================================================================
--- src/terminal-window.h	(revision 3274)
+++ src/terminal-window.h	(working copy)
@@ -74,6 +74,9 @@
 void terminal_window_set_menubar_visible     (TerminalWindow *window,
                                               gboolean        setting);
 gboolean terminal_window_get_menubar_visible (TerminalWindow *window);
+void terminal_window_set_tabs_always_visible (TerminalWindow *window,
+                                              gboolean        setting);
+gboolean terminal_window_get_tabs_always_visible (TerminalWindow *window);
 
 void            terminal_window_switch_screen (TerminalWindow *window,
                                                TerminalScreen *screen);
Index: src/terminal.xml
===================================================================
--- src/terminal.xml	(revision 3274)
+++ src/terminal.xml	(working copy)
@@ -24,6 +24,7 @@
     </menu>
     <menu action="View">
       <menuitem action="ViewMenubar" />
+      <menuitem action="ViewTabsAlways" />
       <menuitem action="ViewFullscreen" />
       <separator />
       <menuitem action="ViewZoomIn" />
