Index: src/terminal-app.h
===================================================================
--- src/terminal-app.h	(revision 3436)
+++ src/terminal-app.h	(working copy)
@@ -68,6 +68,7 @@
 #define TERMINAL_APP_ENABLE_MENU_BAR_ACCEL  "enable-menu-accels"
 #define TERMINAL_APP_ENABLE_MNEMONICS       "enable-mnemonics"
 #define TERMINAL_APP_SYSTEM_FONT            "system-font"
+#define TERMINAL_APP_ALWAYS_SHOW_TABS       "always-show-tabs"
 
 /* TerminalApp */
 
Index: src/terminal-window.c
===================================================================
--- src/terminal-window.c	(revision 3436)
+++ src/terminal-window.c	(working copy)
@@ -1065,9 +1065,14 @@
   gboolean show_tabs;
   guint num;
 
-  num = gtk_notebook_get_n_pages (GTK_NOTEBOOK (priv->notebook));
-
-  show_tabs = (num + change) > 1;
+  TerminalApp *app = terminal_app_get ();
+  g_object_get (app, TERMINAL_APP_ALWAYS_SHOW_TABS, &show_tabs, NULL);
+  if (!show_tabs)
+    {
+      num = gtk_notebook_get_n_pages (GTK_NOTEBOOK (priv->notebook));
+      show_tabs = (num + change) > 1;
+    }
+  gtk_notebook_set_show_border (GTK_NOTEBOOK (priv->notebook), show_tabs);
   gtk_notebook_set_show_tabs (GTK_NOTEBOOK (priv->notebook), show_tabs);
 }
 
@@ -1572,6 +1577,15 @@
 }
 
 static void
+terminal_window_always_show_tabs_notify_cb (TerminalApp *app,
+                                            GParamSpec *pspec,
+                                            TerminalWindow *window)
+{
+  TerminalWindowPrivate *priv = window->priv;
+  update_tab_visibility (window, 0);
+}
+
+static void
 terminal_window_init (TerminalWindow *window)
 {
   const GtkActionEntry menu_entries[] =
@@ -1863,6 +1877,10 @@
   terminal_window_profile_list_changed_cb (app, window);
   g_signal_connect (app, "profile-list-changed",
                     G_CALLBACK (terminal_window_profile_list_changed_cb), window);
+
+  terminal_window_always_show_tabs_notify_cb (app, NULL, window);
+  g_signal_connect (app, "notify::" TERMINAL_APP_ALWAYS_SHOW_TABS,
+                    G_CALLBACK (terminal_window_always_show_tabs_notify_cb), window);
   
   terminal_window_encoding_list_changed_cb (app, window);
   g_signal_connect (app, "encoding-list-changed",
Index: src/gnome-terminal.schemas.in
===================================================================
--- src/gnome-terminal.schemas.in	(revision 3436)
+++ src/gnome-terminal.schemas.in	(working copy)
@@ -110,6 +110,20 @@
          </long>
       </locale>
     </schema>
+
+    <schema>
+      <key>/schemas/apps/gnome-terminal/global/always_show_tabs</key>
+      <applyto>/apps/gnome-terminal/global/always_show_tabs</applyto>
+      <owner>gnome-terminal</owner>
+      <type>bool</type>
+      <default>false</default>
+      <locale name="C">
+         <short>Show tabs even if there is only one tab opened</short>
+         <long>
+	 Show notebook's tabs even if there in only one tab opened.
+         </long>
+      </locale>
+    </schema>
  
 
 
Index: src/terminal-app.c
===================================================================
--- src/terminal-app.c	(revision 3436)
+++ src/terminal-app.c	(working copy)
@@ -96,6 +96,7 @@
   guint system_font_notify_id;
   guint enable_mnemonics_notify_id;
   guint enable_menu_accels_notify_id;
+  guint always_show_tabs_notify_id;
 
   GHashTable *profiles;
   char* default_profile_id;
@@ -108,6 +109,7 @@
   PangoFontDescription *system_font_desc;
   gboolean enable_mnemonics;
   gboolean enable_menu_accels;
+  gboolean always_show_tabs;
 
   gboolean use_factory;
 };
@@ -119,6 +121,7 @@
   PROP_ENABLE_MENU_BAR_ACCEL,
   PROP_ENABLE_MNEMONICS,
   PROP_SYSTEM_FONT,
+  PROP_ALWAYS_SHOW_TABS,
 };
 
 enum
@@ -154,6 +157,9 @@
 
 #define ENCODING_LIST_KEY CONF_GLOBAL_PREFIX "/active_encodings"
 
+#define DEFAULT_ALWAYS_SHOW_TABS (FALSE)
+#define ALWAYS_SHOW_TABS_KEY CONF_GLOBAL_PREFIX "/always_show_tabs"
+
 /* Helper functions */
 
 static GdkScreen*
@@ -1002,6 +1008,31 @@
 }
 
 static void
+terminal_app_always_show_tabs_notify_cb (GConfClient *client,
+                                    guint        cnxn_id,
+                                    GConfEntry  *entry,
+                                    gpointer     user_data)
+{
+  TerminalApp *app = TERMINAL_APP (user_data);
+  GConfValue *gconf_value;
+  gboolean show_tabs;
+
+  if (strcmp (gconf_entry_get_key (entry), ALWAYS_SHOW_TABS_KEY) != 0)
+    return;
+
+  gconf_value = gconf_entry_get_value (entry);
+  if (!gconf_value || gconf_value->type != GCONF_VALUE_BOOL)
+    return;
+
+  show_tabs = gconf_value_get_bool (gconf_value);
+  if (show_tabs == app->always_show_tabs)
+    return;
+
+  app->always_show_tabs = show_tabs;
+  g_object_notify (G_OBJECT (app), TERMINAL_APP_ALWAYS_SHOW_TABS);
+}
+
+static void
 terminal_app_enable_mnemonics_notify_cb (GConfClient *client,
                                          guint        cnxn_id,
                                          GConfEntry  *entry,
@@ -1377,6 +1408,8 @@
   app->enable_mnemonics = DEFAULT_ENABLE_MNEMONICS;
   app->enable_menu_accels = DEFAULT_ENABLE_MENU_BAR_ACCEL;
 
+  app->always_show_tabs = DEFAULT_ALWAYS_SHOW_TABS;
+
   app->profiles = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
 
   app->encodings = terminal_encodings_get_builtins ();
@@ -1419,6 +1452,12 @@
                              terminal_app_enable_mnemonics_notify_cb,
                              app, NULL, NULL);
 
+  app->always_show_tabs_notify_id =
+    gconf_client_notify_add (app->conf,
+                             ALWAYS_SHOW_TABS_KEY,
+                             terminal_app_always_show_tabs_notify_cb,
+                             app, NULL, NULL);
+
   app->enable_menu_accels_notify_id =
     gconf_client_notify_add (app->conf,
                              ENABLE_MENU_BAR_ACCEL_KEY,
@@ -1432,6 +1471,7 @@
   gconf_client_notify (app->conf, MONOSPACE_FONT_KEY);
   gconf_client_notify (app->conf, ENABLE_MENU_BAR_ACCEL_KEY);
   gconf_client_notify (app->conf, ENABLE_MNEMONICS_KEY);
+  gconf_client_notify (app->conf, ALWAYS_SHOW_TABS_KEY);
 
   /* Ensure we have valid settings */
   g_assert (app->default_profile_id != NULL);
@@ -1477,6 +1517,8 @@
     gconf_client_notify_remove (app->conf, app->enable_menu_accels_notify_id);
   if (app->enable_mnemonics_notify_id != 0)
     gconf_client_notify_remove (app->conf, app->enable_mnemonics_notify_id);
+  if (app->always_show_tabs_notify_id != 0)
+    gconf_client_notify_remove (app->conf, app->always_show_tabs_notify_id);
 
   gconf_client_remove_dir (app->conf, CONF_GLOBAL_PREFIX, NULL);
   gconf_client_remove_dir (app->conf, MONOSPACE_FONT_DIR, NULL);
@@ -1520,6 +1562,9 @@
       case PROP_ENABLE_MNEMONICS:
         g_value_set_boolean (value, app->enable_mnemonics);
         break;
+      case PROP_ALWAYS_SHOW_TABS:
+        g_value_set_boolean (value, app->always_show_tabs);
+        break;
       case PROP_DEFAULT_PROFILE:
         g_value_set_object (value, app->default_profile);
         break;
@@ -1547,6 +1592,7 @@
         app->enable_mnemonics = g_value_get_boolean (value);
         gconf_client_set_bool (app->conf, ENABLE_MNEMONICS_KEY, app->enable_mnemonics, NULL);
         break;
+      case PROP_ALWAYS_SHOW_TABS:
       case PROP_DEFAULT_PROFILE:
       case PROP_SYSTEM_FONT:
         /* not writable */
@@ -1608,6 +1654,13 @@
 
   g_object_class_install_property
     (object_class,
+     PROP_ALWAYS_SHOW_TABS,
+     g_param_spec_boolean (TERMINAL_APP_ALWAYS_SHOW_TABS, NULL, NULL,
+                           DEFAULT_ALWAYS_SHOW_TABS,
+                           G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
+
+  g_object_class_install_property
+    (object_class,
      PROP_SYSTEM_FONT,
      g_param_spec_boxed (TERMINAL_APP_SYSTEM_FONT, NULL, NULL,
                          PANGO_TYPE_FONT_DESCRIPTION,
