=== gnome-terminal.schemas.in
==================================================================
--- gnome-terminal.schemas.in	(revision 298)
+++ gnome-terminal.schemas.in	(local)
@@ -147,6 +147,20 @@
          </long>
       </locale>
     </schema>
+ 
+    <schema>
+      <key>/schemas/apps/gnome-terminal/global/tab_position</key>
+      <applyto>/apps/gnome-terminal/global/tab_position</applyto>
+      <owner>gnome-terminal</owner>
+      <type>string</type>
+      <default>top</default>
+      <locale name="C">
+         <short>Position of the tabs.</short>
+         <long>
+	 Where to put the tabs. Possible strings are "top" and "bottom".
+         </long>
+      </locale>
+    </schema>
 
 
     <schema>
=== terminal-window.c
==================================================================
--- terminal-window.c	(revision 298)
+++ terminal-window.c	(local)
@@ -781,6 +781,18 @@
 }
 
 static void
+terminal_window_change_tab_position (TerminalWindow *window, const char* position)
+{
+  if (position == NULL)
+    return;
+  if (strcmp (position, "bottom") == 0) 
+    gtk_notebook_set_tab_pos (GTK_NOTEBOOK (window->priv->notebook), GTK_POS_BOTTOM);
+  else
+    gtk_notebook_set_tab_pos (GTK_NOTEBOOK (window->priv->notebook), GTK_POS_TOP);
+}
+
+
+static void
 terminal_window_init (TerminalWindow *window)
 {
   GtkWidget *mi;
@@ -1275,7 +1287,8 @@
   TerminalWindow *window;
   GError *err;
   gboolean use_mnemonics;
-  
+  gchar *tab_position;
+
   window = g_object_new (TERMINAL_TYPE_WINDOW, NULL);
   g_signal_connect (G_OBJECT (window), "realize", G_CALLBACK (terminal_window_realized_callback), NULL);
 
@@ -1296,6 +1309,24 @@
     {
       window->priv->use_mnemonics = use_mnemonics;
     }
+
+
+  tab_position = gconf_client_get_string (window->priv->conf,
+                                          CONF_GLOBAL_PREFIX"/tab_position",
+                                          NULL);
+    
+  err = NULL;
+  if (err)
+    {
+      g_printerr (_("There was an error loading config value for the tab position. (%s)\n"),
+                  err->message);
+      g_error_free (err);
+    }
+  else
+    {
+        terminal_window_change_tab_position (window, tab_position);
+        g_free (tab_position);
+    }
   
   err = NULL;
   window->priv->notify_id =
@@ -2030,6 +2061,11 @@
           reset_menubar_labels (window);
         }
     }
+  else if (strcmp (gconf_entry_get_key (entry), CONF_GLOBAL_PREFIX"/tab_position") == 0)
+    {
+      if (val && val->type == GCONF_VALUE_STRING)
+          terminal_window_change_tab_position (window, gconf_value_get_string(val));
+    }
 }
 
 static void
