diff -urp gnome-terminal-3.10.0.orig/src/org.gnome.Terminal.gschema.xml.in gnome-terminal-3.10.0/src/org.gnome.Terminal.gschema.xml.in
--- gnome-terminal-3.10.0.orig/src/org.gnome.Terminal.gschema.xml.in	2013-09-24 18:50:11.000000000 +0200
+++ gnome-terminal-3.10.0/src/org.gnome.Terminal.gschema.xml.in	2013-10-12 01:04:58.461398883 +0200
@@ -617,6 +617,11 @@
       <_summary>Whether to show the menubar in new windows</_summary>
     </key>
 
+    <key name="tab-opens-adjacent" type="b">
+      <default>false</default>
+      <_summary>Whether new tabs should open adjacent to the current</_summary>
+    </key>
+
    <!-- <child name="profiles" schema="org.gnome.Terminal.ProfilesList" /> -->
 
    <child name="keybindings" schema="org.gnome.Terminal.Legacy.Keybindings" />
diff -urp gnome-terminal-3.10.0.orig/src/preferences.ui gnome-terminal-3.10.0/src/preferences.ui
--- gnome-terminal-3.10.0.orig/src/preferences.ui	2013-09-24 18:50:11.000000000 +0200
+++ gnome-terminal-3.10.0/src/preferences.ui	2013-10-12 01:00:27.585387653 +0200
@@ -120,6 +120,24 @@
                     <property name="position">2</property>
                   </packing>
                 </child>
+                <child>
+                  <object class="GtkCheckButton" id="tab-opens-adjacent-checkbutton">
+                    <property name="label" translatable="yes">New tab opens _adjacent to the current</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">False</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="use_underline">True</property>
+                    <property name="xalign">0</property>
+                    <property name="draw_indicator">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">3</property>
+                  </packing>
+                </child>
               </object>
             </child>
             <child type="tab">
diff -urp gnome-terminal-3.10.0.orig/src/terminal-app.c gnome-terminal-3.10.0/src/terminal-app.c
--- gnome-terminal-3.10.0.orig/src/terminal-app.c	2013-09-24 18:50:11.000000000 +0200
+++ gnome-terminal-3.10.0/src/terminal-app.c	2013-10-12 01:04:01.877396537 +0200
@@ -492,14 +492,21 @@ terminal_app_new_terminal (TerminalApp
                            double           zoom)
 {
   TerminalScreen *screen;
+  gboolean tab_opens_adjacent_setting;
+  int position;
 
   g_return_val_if_fail (TERMINAL_IS_APP (app), NULL);
   g_return_val_if_fail (TERMINAL_IS_WINDOW (window), NULL);
 
+  tab_opens_adjacent_setting =
+        g_settings_get_boolean (terminal_app_get_global_settings (terminal_app_get ()),
+                                TERMINAL_SETTING_TAB_OPENS_ADJACENT);
+  position = tab_opens_adjacent_setting ? terminal_window_get_active_screen_num (window) + 1 : -1;
+
   screen = terminal_screen_new (profile, override_command, title,
                                 working_dir, child_env, zoom);
 
-  terminal_window_add_screen (window, screen, -1);
+  terminal_window_add_screen (window, screen, position);
   terminal_window_switch_screen (window, screen);
   gtk_widget_grab_focus (GTK_WIDGET (screen));
 
diff -urp gnome-terminal-3.10.0.orig/src/terminal-mdi-container.c gnome-terminal-3.10.0/src/terminal-mdi-container.c
--- gnome-terminal-3.10.0.orig/src/terminal-mdi-container.c	2013-09-24 18:50:11.000000000 +0200
+++ gnome-terminal-3.10.0/src/terminal-mdi-container.c	2013-10-12 00:36:44.629328661 +0200
@@ -97,12 +97,13 @@ terminal_mdi_container_default_init (Ter
 
 void 
 terminal_mdi_container_add_screen (TerminalMdiContainer *container,
-                                   TerminalScreen *screen)
+                                   TerminalScreen *screen,
+                                   int position)
 {
   g_return_if_fail (TERMINAL_IS_MDI_CONTAINER (container));
   g_return_if_fail (TERMINAL_IS_SCREEN (screen));
 
-  TERMINAL_MDI_CONTAINER_GET_IFACE (container)->add_screen (container, screen);
+  TERMINAL_MDI_CONTAINER_GET_IFACE (container)->add_screen (container, screen, position);
 }
 
 void 
diff -urp gnome-terminal-3.10.0.orig/src/terminal-mdi-container.h gnome-terminal-3.10.0/src/terminal-mdi-container.h
--- gnome-terminal-3.10.0.orig/src/terminal-mdi-container.h	2013-09-24 18:50:11.000000000 +0200
+++ gnome-terminal-3.10.0/src/terminal-mdi-container.h	2013-10-12 00:36:27.673327958 +0200
@@ -37,7 +37,8 @@ struct _TerminalMdiContainerInterface {
 
   /* vfuncs */
   void                  (* add_screen)              (TerminalMdiContainer *container,
-                                                     TerminalScreen *screen);
+                                                     TerminalScreen *screen,
+                                                     int position);
   void                  (* remove_screen)           (TerminalMdiContainer *container,
                                                      TerminalScreen *screen);
   TerminalScreen *      (* get_active_screen)       (TerminalMdiContainer *container);
@@ -67,7 +68,8 @@ struct _TerminalMdiContainerInterface {
 GType terminal_mdi_container_get_type (void);
 
 void terminal_mdi_container_add_screen (TerminalMdiContainer *container,
-                                        TerminalScreen *screen);
+                                        TerminalScreen *screen,
+                                        int position);
 
 void terminal_mdi_container_remove_screen (TerminalMdiContainer *container,
                                            TerminalScreen *screen);
diff -urp gnome-terminal-3.10.0.orig/src/terminal-notebook.c gnome-terminal-3.10.0/src/terminal-notebook.c
--- gnome-terminal-3.10.0.orig/src/terminal-notebook.c	2013-09-24 18:50:11.000000000 +0200
+++ gnome-terminal-3.10.0/src/terminal-notebook.c	2013-10-12 00:35:04.825324523 +0200
@@ -72,12 +72,12 @@ close_button_clicked_cb (TerminalTabLabe
 
 static void
 terminal_notebook_add_screen (TerminalMdiContainer *container,
-                              TerminalScreen *screen)
+                              TerminalScreen *screen,
+                              int position)
 {
   TerminalNotebook *notebook = TERMINAL_NOTEBOOK (container);
   GtkNotebook *gtk_notebook = GTK_NOTEBOOK (notebook);
   GtkWidget *screen_container, *tab_label;
-  const int position = -1;
 
   g_warn_if_fail (gtk_widget_get_parent (GTK_WIDGET (screen)) == NULL);
 
diff -urp gnome-terminal-3.10.0.orig/src/terminal-prefs.c gnome-terminal-3.10.0/src/terminal-prefs.c
--- gnome-terminal-3.10.0.orig/src/terminal-prefs.c	2013-09-24 18:50:11.000000000 +0200
+++ gnome-terminal-3.10.0/src/terminal-prefs.c	2013-10-12 01:01:16.493389681 +0200
@@ -588,6 +588,7 @@ terminal_prefs_show_preferences (GtkWind
   PrefData *data;
   GtkWidget *dialog, *tree_view;
   GtkWidget *show_menubar_button, *disable_mnemonics_button, *disable_menu_accel_button;
+  GtkWidget *tab_opens_adjacent_button;
   GtkWidget *tree_view_container, *new_button, *edit_button, *clone_button, *remove_button;
   GtkWidget *default_hbox, *default_label;
   GtkTreeSelection *selection;
@@ -611,6 +612,7 @@ terminal_prefs_show_preferences (GtkWind
                                        "default-show-menubar-checkbutton", &show_menubar_button,
                                        "disable-mnemonics-checkbutton", &disable_mnemonics_button,
                                        "disable-menu-accel-checkbutton", &disable_menu_accel_button,
+                                       "tab-opens-adjacent-checkbutton", &tab_opens_adjacent_button,
                                        "accelerators-treeview", &tree_view,
                                        "profiles-treeview-container", &tree_view_container,
                                        "new-profile-button", &new_button,
@@ -649,6 +651,12 @@ terminal_prefs_show_preferences (GtkWind
                    "active",
                    G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET);
 
+  g_settings_bind (settings,
+                   TERMINAL_SETTING_TAB_OPENS_ADJACENT,
+                   tab_opens_adjacent_button,
+                   "active",
+                   G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET);
+
   terminal_accels_fill_treeview (tree_view);
 
   /* Profiles tab */
diff -urp gnome-terminal-3.10.0.orig/src/terminal-schemas.h gnome-terminal-3.10.0/src/terminal-schemas.h
--- gnome-terminal-3.10.0.orig/src/terminal-schemas.h	2013-09-24 18:50:11.000000000 +0200
+++ gnome-terminal-3.10.0/src/terminal-schemas.h	2013-10-12 01:00:14.753387121 +0200
@@ -69,6 +69,7 @@ G_BEGIN_DECLS
 #define TERMINAL_SETTING_DEFAULT_SHOW_MENUBAR_KEY       "default-show-menubar"
 #define TERMINAL_SETTING_ENABLE_MENU_BAR_ACCEL_KEY      "menu-accelerator-enabled"
 #define TERMINAL_SETTING_ENABLE_MNEMONICS_KEY           "mnemonics-enabled"
+#define TERMINAL_SETTING_TAB_OPENS_ADJACENT             "tab-opens-adjacent"
 #define TERMINAL_SETTING_ENCODINGS_KEY                  "encodings"
 #define TERMINAL_SETTING_SCHEMA_VERSION                 "schema-version"
 
diff -urp gnome-terminal-3.10.0.orig/src/terminal-window.c gnome-terminal-3.10.0/src/terminal-window.c
--- gnome-terminal-3.10.0.orig/src/terminal-window.c	2013-09-24 18:50:11.000000000 +0200
+++ gnome-terminal-3.10.0/src/terminal-window.c	2013-10-12 00:52:35.849368096 +0200
@@ -2235,6 +2235,13 @@ screen_close_request_cb (TerminalMdiCont
   terminal_window_remove_screen (window, screen);
 }
 
+int
+terminal_window_get_active_screen_num (TerminalWindow *window)
+{
+  TerminalWindowPrivate *priv = window->priv;
+  return terminal_mdi_container_get_active_screen_num (priv->mdi_container);
+}
+
 void
 terminal_window_add_screen (TerminalWindow *window,
                             TerminalScreen *screen,
@@ -2252,7 +2259,7 @@ terminal_window_add_screen (TerminalWind
   if (TERMINAL_IS_WINDOW (old_window))
     terminal_window_remove_screen (TERMINAL_WINDOW (old_window), screen);
 
-  terminal_mdi_container_add_screen (priv->mdi_container, screen);
+  terminal_mdi_container_add_screen (priv->mdi_container, screen, position);
 }
 
 void
diff -urp gnome-terminal-3.10.0.orig/src/terminal-window.h gnome-terminal-3.10.0/src/terminal-window.h
--- gnome-terminal-3.10.0.orig/src/terminal-window.h	2013-09-24 18:50:11.000000000 +0200
+++ gnome-terminal-3.10.0/src/terminal-window.h	2013-10-12 00:51:10.765364569 +0200
@@ -54,6 +54,8 @@ void terminal_window_set_is_restored (Te
 
 GtkUIManager *terminal_window_get_ui_manager (TerminalWindow *window);
 
+int terminal_window_get_active_screen_num (TerminalWindow *window);
+
 void terminal_window_add_screen (TerminalWindow *window,
                                  TerminalScreen *screen,
                                  int position);
