Index: netsurf/gtk/gtk_window.c
===================================================================
--- netsurf/gtk/gtk_window.c	(revision 7027)
+++ netsurf/gtk/gtk_window.c	(working copy)
@@ -83,7 +83,7 @@
 /* Create a gui_window */
 struct gui_window *gui_create_browser_window(struct browser_window *bw,
                                              struct browser_window *clone,
-                                             bool new_tab)
+                                             int new_tab_option)
 {
 	struct gui_window *g;		/**< what we're creating to return */
         GtkPolicyType scrollpolicy;
@@ -123,7 +123,7 @@
         if (bw->parent != NULL)
                 /* Find our parent's scaffolding */
                 g->scaffold = bw->parent->window->scaffold;
-        else if (new_tab)
+        else if (new_tab_option != NS_NEW_TAB_NONE)
         	g->scaffold = clone->window->scaffold;
         else
                 /* Now construct and attach a scaffold */
@@ -153,7 +153,7 @@
                 nsgtk_gui_window_attach_child(bw->parent->window, g);
 	else
                 /* Attach our viewport into the scaffold */
-        	nsgtk_tab_add(g);
+        	nsgtk_tab_add(g, new_tab_option);
 
         gtk_container_set_border_width(GTK_CONTAINER(g->viewport), 0);
         gtk_viewport_set_shadow_type(g->viewport, GTK_SHADOW_NONE);
Index: netsurf/gtk/gtk_scaffolding.c
===================================================================
--- netsurf/gtk/gtk_scaffolding.c	(revision 7027)
+++ netsurf/gtk/gtk_scaffolding.c	(working copy)
@@ -75,6 +75,7 @@
 	GtkMenuItem		*tabs_menu;
 	GtkToolbar		*tool_bar;
 	GtkToolButton		*back_button;
+	GtkToolButton		*history_button;
 	GtkToolButton		*forward_button;
 	GtkToolButton		*stop_button;
 	GtkToolButton		*reload_button;
@@ -130,6 +131,7 @@
 static gboolean nsgtk_window_popup_menu_hidden(GtkWidget *widget,
 		struct gtk_scaffolding *g);
 static gboolean nsgtk_window_back_button_clicked(GtkWidget *, gpointer);
+static gboolean nsgtk_window_history_button_clicked(GtkWidget *, gpointer);
 static gboolean nsgtk_window_forward_button_clicked(GtkWidget *, gpointer);
 static gboolean nsgtk_window_stop_button_clicked(GtkWidget *, gpointer);
 static gboolean nsgtk_window_reload_button_clicked(GtkWidget *, gpointer);
@@ -137,12 +139,12 @@
 static gboolean nsgtk_window_url_activate_event(GtkWidget *, gpointer);
 static gboolean nsgtk_window_url_changed(GtkWidget *, GdkEventKey *, gpointer);
 
-static guint nsgtk_scaffolding_update_save_link_sensitivity(
+static guint nsgtk_scaffolding_update_link_operations_sensitivity(
 		struct gtk_scaffolding *g, GladeXML *xml, gdouble x, gdouble y,
 		gboolean hide);
 static guint nsgtk_scaffolding_update_edit_actions_sensitivity(
 		struct gtk_scaffolding *g, GladeXML *xml, gboolean hide);
-static void nsgtk_scaffolding_enable_save_link_sensitivity(
+static void nsgtk_scaffolding_enable_link_operations_sensitivity(
 		struct gtk_scaffolding *g, GladeXML *xml);
 static void nsgtk_scaffolding_enable_edit_actions_sensitivity(
 		struct gtk_scaffolding *g, GladeXML *xml);
@@ -213,6 +215,8 @@
 
 /* Popup context menu (also shares edit menu handlers) */
 MENUPROTO(save_link);
+MENUPROTO(open_link_in_focused_tab);
+MENUPROTO(open_link_in_background_tab);
 
 /* structure used by nsgtk_attach_menu_handlers to connect menu items to
  * their handling functions.
@@ -392,7 +396,7 @@
 static gboolean nsgtk_window_popup_menu_hidden(GtkWidget *widget, 
 		struct gtk_scaffolding *g)
 {
-	nsgtk_scaffolding_enable_save_link_sensitivity(g, g->popup_xml);
+	nsgtk_scaffolding_enable_link_operations_sensitivity(g, g->popup_xml);
 	nsgtk_scaffolding_enable_edit_actions_sensitivity(g, g->popup_xml);
 	return TRUE;
 }
@@ -411,6 +415,28 @@
 	return TRUE;
 }
 
+/* TODO: include resize */
+gboolean nsgtk_window_history_button_clicked(GtkWidget *widget, gpointer data)
+{
+	struct gtk_scaffolding *gw = (struct gtk_scaffolding *)data;
+
+	/* if entries of the same url but different frag_ids have been added
+	 * the history needs redrawing (what is done in the throbber code in
+	 * other cases)
+	 */
+	nsgtk_window_update_back_forward(gw);
+
+	gtk_window_set_default_size(gw->history_window->window, 500, 150); 
+	gtk_window_set_position(gw->history_window->window, GTK_WIN_POS_MOUSE);
+	//gtk_window_set_decorated(gw->history_window->window, false);
+	gtk_window_set_transient_for(gw->history_window->window, gw->window);
+	gtk_window_set_opacity(gw->history_window->window, 0.9);
+	gtk_widget_show(GTK_WIDGET(gw->history_window->window));
+	gdk_window_raise(GTK_WIDGET(gw->history_window->window)->window);
+
+	return TRUE;
+}
+
 gboolean nsgtk_window_forward_button_clicked(GtkWidget *widget, gpointer data)
 {
 	struct gtk_scaffolding *g = data;
@@ -522,9 +548,9 @@
 {
 	struct gtk_scaffolding *gw = (struct gtk_scaffolding *)g;
 	struct browser_window *bw = nsgtk_get_browser_for_gui(gw->top_level);
-	const char *url = gtk_entry_get_text(GTK_ENTRY(gw->url_bar));
+	//const char *url = gtk_entry_get_text(GTK_ENTRY(gw->url_bar));
 
-	browser_window_create(url, bw, NULL, false, true);
+	browser_window_create(NULL, bw, NULL, false, NS_NEW_TAB_FOCUS);
 
 	return TRUE;
 }
@@ -732,6 +758,30 @@
     return TRUE;
 }
 
+MENUHANDLER(open_link_in_focused_tab)
+{
+	struct gtk_scaffolding *gw = (struct gtk_scaffolding *)g;
+	struct gui_window *gui = gw->top_level;
+	struct browser_window *bw = nsgtk_get_browser_for_gui(gui);
+
+	if (!current_menu_link_box)
+		return FALSE;
+	browser_window_create(current_menu_link_box->href, bw, NULL, true, NS_NEW_TAB_FOCUS);
+	return TRUE;
+}
+
+MENUHANDLER(open_link_in_background_tab)
+{
+	struct gtk_scaffolding *gw = (struct gtk_scaffolding *)g;
+	struct gui_window *gui = gw->top_level;
+	struct browser_window *bw = nsgtk_get_browser_for_gui(gui);
+
+	if (!current_menu_link_box)
+		return FALSE;
+	browser_window_create(current_menu_link_box->href, bw, NULL, true, NS_NEW_TAB_BACKGROUND);
+	return TRUE;
+}
+
 MENUHANDLER(cut)
 {
 	struct gtk_scaffolding *gw = (struct gtk_scaffolding *)g;
@@ -1067,18 +1117,7 @@
 
 MENUHANDLER(local_history)
 {
-	struct gtk_scaffolding *gw = (struct gtk_scaffolding *)g;
-
-	/* if entries of the same url but different frag_ids have been added
-	 * the history needs redrawing (what is done in the throbber code in
-	 * other cases)
-	 */
-	nsgtk_window_update_back_forward(gw);
-	
-	gtk_widget_show(GTK_WIDGET(gw->history_window->window));
-	gdk_window_raise(GTK_WIDGET(gw->history_window->window)->window);
-
-	return TRUE;
+	return nsgtk_window_history_button_clicked(GTK_WIDGET(widget), g);
 }
 
 MENUHANDLER(global_history)
@@ -1191,6 +1230,7 @@
 	g->tabs_menu = GTK_MENU_ITEM(GET_WIDGET("menuitem_tabs"));
 	g->tool_bar = GTK_TOOLBAR(GET_WIDGET("toolbar"));
 	g->back_button = GTK_TOOL_BUTTON(GET_WIDGET("toolBack"));
+	g->history_button = GTK_TOOL_BUTTON(GET_WIDGET("history"));
 	g->forward_button = GTK_TOOL_BUTTON(GET_WIDGET("toolForward"));
 	g->stop_button = GTK_TOOL_BUTTON(GET_WIDGET("toolStop"));
 	g->reload_button = GTK_TOOL_BUTTON(GET_WIDGET("toolReload"));
@@ -1306,6 +1346,7 @@
 	CONNECT(g->edit_menu, "show", nsgtk_window_edit_menu_clicked, g);
 	CONNECT(g->edit_menu, "hide", nsgtk_window_edit_menu_hidden, g);
 	CONNECT(g->back_button, "clicked", nsgtk_window_back_button_clicked, g);
+	CONNECT(g->history_button, "clicked", nsgtk_window_history_button_clicked, g);
 	CONNECT(g->forward_button, "clicked",
 			nsgtk_window_forward_button_clicked, g);
 	CONNECT(g->stop_button, "clicked", nsgtk_window_stop_button_clicked, g);
@@ -1340,7 +1381,11 @@
 	CONNECT(glade_xml_get_widget(g->popup_xml, "popupReload"), "activate", 
 			 nsgtk_window_reload_button_clicked, g);
 	CONNECT(glade_xml_get_widget(g->popup_xml, "save_link_popup"), 
-			"activate", nsgtk_on_save_link_activate, g); 
+			"activate", nsgtk_on_save_link_activate, g);
+	CONNECT(glade_xml_get_widget(g->popup_xml, "open_link_in_focused_tab_popup"), 
+			"activate", nsgtk_on_open_link_in_focused_tab_activate, g); 
+	CONNECT(glade_xml_get_widget(g->popup_xml, "open_link_in_background_tab_popup"), 
+			"activate", nsgtk_on_open_link_in_background_tab_activate, g); 
 	CONNECT(glade_xml_get_widget(g->popup_xml, "cut_popup"), "activate", 
 			 nsgtk_on_cut_activate, g);	
 	CONNECT(glade_xml_get_widget(g->popup_xml, "copy_popup"), "activate",
@@ -1458,6 +1503,11 @@
 	return g->scaffold->notebook;
 }
 
+GtkEntry* nsgtk_scaffolding_get_urlbar(struct gui_window *g)
+{
+	return g->scaffold->url_bar;
+}
+
 void nsgtk_scaffolding_set_top_level (struct gui_window *gw)
 {
 	gw->scaffold->top_level = gw;
@@ -1470,7 +1520,7 @@
 	GtkWidget *widget = NULL;
 
 	available_menu_options |=
-        		nsgtk_scaffolding_update_save_link_sensitivity(g,
+        		nsgtk_scaffolding_update_link_operations_sensitivity(g,
 			g->popup_xml, x, y, TRUE);
 	available_menu_options |=
 			nsgtk_scaffolding_update_edit_actions_sensitivity(g,
@@ -1480,17 +1530,28 @@
 	if (!available_menu_options) {
 		widget = glade_xml_get_widget(g->popup_xml, "separator");
 		gtk_widget_hide(widget);
+
+		widget = glade_xml_get_widget(g->popup_xml, "separator1");
+		gtk_widget_hide(widget);
 	}
 
 	gtk_menu_popup(g->popup_menu, NULL, NULL, NULL, NULL, 0,
 			gtk_get_current_event_time());
 }
 
-static guint nsgtk_scaffolding_update_save_link_sensitivity(
+static guint nsgtk_scaffolding_update_link_operations_sensitivity(
 		struct gtk_scaffolding *g, GladeXML *xml, gdouble x, gdouble y,
 		gboolean hide)
 {
-	GtkWidget *widget = glade_xml_get_widget_prefix(xml, "save_link")->data;
+	const int widget_count = 3;
+	int i;
+	bool is_sensitive;
+	GtkWidget *widget[widget_count];
+
+	widget[0] = glade_xml_get_widget_prefix(xml, "save_link")->data;
+	widget[1] = glade_xml_get_widget_prefix(xml, "open_link_in_focused_tab")->data;
+	widget[2] = glade_xml_get_widget_prefix(xml, "open_link_in_background_tab")->data;
+ 
 	struct browser_window *bw = nsgtk_get_browser_for_gui(g->top_level);
 	current_menu_link_box = NULL;
 
@@ -1499,18 +1560,20 @@
 				x, y);
 	}
 
-	gtk_widget_set_sensitive(widget, current_menu_link_box != NULL);
+	is_sensitive = current_menu_link_box != NULL;
+	for (i = 0; i < widget_count; i++) {
+		gtk_widget_set_sensitive(widget[i], is_sensitive);
+		if (hide && !current_menu_link_box)
+				gtk_widget_hide(widget[i]);
+	}
 
-	if (hide && !current_menu_link_box)
-		gtk_widget_hide(widget);
-
-	return (current_menu_link_box ? 1 : 0);
+	return is_sensitive;
 }
 
 static guint nsgtk_scaffolding_update_edit_actions_sensitivity(
 		struct gtk_scaffolding *g, GladeXML *xml, gboolean hide)
 {
-	GtkWidget *widget = gtk_window_get_focus(g->window);
+	GtkWidget* widget = gtk_window_get_focus(g->window);
 	gboolean can_copy, can_cut, can_paste;
 	gboolean has_selection;
 	
@@ -1549,34 +1612,44 @@
 	return (can_paste | can_cut | can_copy);
 }
 
-static void nsgtk_scaffolding_enable_save_link_sensitivity(
+static void nsgtk_scaffolding_enable_link_operations_sensitivity(
 		struct gtk_scaffolding *g, GladeXML *xml)
 {
-	GtkWidget *widget;
+	const int widget_count = 3;
+	int i;
+	GtkWidget* widget[widget_count];
 
-	widget = glade_xml_get_widget_prefix(xml, "save_link")->data;
-	gtk_widget_set_sensitive (widget, TRUE);
-	gtk_widget_show(widget);
+	widget[0] = glade_xml_get_widget_prefix(xml, "save_link")->data;
+	widget[1] = glade_xml_get_widget_prefix(xml, "open_link_in_focused_tab")->data;
+	widget[2] = glade_xml_get_widget_prefix(xml, "open_link_in_background_tab")->data;
+
+	for (i = 0; i < widget_count; i++) {
+		gtk_widget_set_sensitive(widget[i], TRUE);
+		gtk_widget_show(widget[i]);
+	}
 }
 
 static void nsgtk_scaffolding_enable_edit_actions_sensitivity(
 		struct gtk_scaffolding *g, GladeXML *xml)
 {
-	GtkWidget *widget;
+	const int widget_count = 5;
+	const int widget_sensitive_index = 2;
+	int i;
+	GtkWidget *widget[widget_count];
 
-	widget = glade_xml_get_widget_prefix(xml, "copy")->data;
-	gtk_widget_set_sensitive (widget, TRUE);
-	gtk_widget_show(widget);
+	widget[0] = glade_xml_get_widget(xml, "separator");
+	widget[1] = glade_xml_get_widget(xml, "separator1");
+	widget[2] = glade_xml_get_widget_prefix(xml, "copy")->data;
+	widget[3] = glade_xml_get_widget_prefix(xml, "cut")->data;
+	widget[4] = glade_xml_get_widget_prefix(xml, "paste")->data;
 
-	widget = glade_xml_get_widget_prefix(xml, "cut")->data;
-	gtk_widget_set_sensitive (widget, TRUE);
-	gtk_widget_show(widget);
+	for (i = widget_sensitive_index; i < widget_count; i++) {
+		gtk_widget_set_sensitive(widget[i], TRUE);
+	}
 
-	widget = glade_xml_get_widget_prefix(xml, "paste")->data;
-	gtk_widget_set_sensitive (widget, TRUE);
-	gtk_widget_show(widget);
+	for (i = 0; i < widget_count; i++) {
+		gtk_widget_show(widget[i]);
+	}
 
-	widget = glade_xml_get_widget(xml, "separator");
-	gtk_widget_show(widget);
 }
-	
+
Index: netsurf/gtk/gtk_scaffolding.h
===================================================================
--- netsurf/gtk/gtk_scaffolding.h	(revision 7027)
+++ netsurf/gtk/gtk_scaffolding.h	(working copy)
@@ -35,6 +35,8 @@
 
 GtkNotebook* nsgtk_scaffolding_get_notebook (struct gui_window *g);
 
+GtkEntry* nsgtk_scaffolding_get_urlbar(struct gui_window *g);
+
 void nsgtk_scaffolding_set_top_level (struct gui_window *gw);
 
 void nsgtk_scaffolding_destroy(nsgtk_scaffolding *scaffold);
Index: netsurf/gtk/gtk_tabs.c
===================================================================
--- netsurf/gtk/gtk_tabs.c	(revision 7027)
+++ netsurf/gtk/gtk_tabs.c	(working copy)
@@ -54,15 +54,20 @@
         nsgtk_tab_options_changed(tabs);
 }
 
-void nsgtk_tab_add(struct gui_window *window)
+void nsgtk_tab_add(struct gui_window *window, int option)
 {
 	GtkNotebook *tabs = nsgtk_scaffolding_get_notebook(window);
 
 	GtkWidget *tabBox = nsgtk_tab_label_setup(window);
-	gtk_notebook_append_page(tabs,
-                                 GTK_WIDGET(window->scrolledwindow), tabBox);
+	gtk_notebook_append_page(tabs, GTK_WIDGET(window->scrolledwindow), tabBox);
 
 	gtk_widget_show_all(GTK_WIDGET(window->scrolledwindow));
+
+	if (option == NS_NEW_TAB_FOCUS) 
+		gtk_notebook_set_current_page(tabs, gtk_notebook_get_n_pages(tabs) - 1);
+
+	GtkEntry* url_bar = nsgtk_scaffolding_get_urlbar(window);
+	gtk_widget_grab_focus(GTK_WIDGET(url_bar));
 }
 
 void nsgtk_tab_visibility_update(GtkNotebook *notebook, GtkWidget *child,
@@ -94,7 +99,7 @@
 
 	hbox = gtk_hbox_new(FALSE, 2);
 
-	label = gtk_label_new("Loading...");
+	label = gtk_label_new("New tab");
 	gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_END);
 	gtk_label_set_single_line_mode(GTK_LABEL(label), TRUE);
 	gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
Index: netsurf/gtk/gtk_tabs.h
===================================================================
--- netsurf/gtk/gtk_tabs.h	(revision 7027)
+++ netsurf/gtk/gtk_tabs.h	(working copy)
@@ -19,10 +19,16 @@
 #ifndef _NETSURF_GTK_TABS_H_
 #define _NETSURF_GTK_TABS_H_
 
+enum {
+	NS_NEW_TAB_NONE = 0,
+	NS_NEW_TAB_FOCUS,
+	NS_NEW_TAB_BACKGROUND
+};
+
 struct gui_window;
 
 void nsgtk_tab_init(GtkWidget *tabs);
-void nsgtk_tab_add(struct gui_window *window);
+void nsgtk_tab_add(struct gui_window *window, int option);
 void nsgtk_tab_set_title(struct gui_window *g, const char *title);
 void nsgtk_tab_options_changed(GtkWidget *tabs);
 void nsgtk_tab_close_current(GtkNotebook *notebook);
Index: netsurf/gtk/res/netsurf.glade
===================================================================
--- netsurf/gtk/res/netsurf.glade	(revision 7027)
+++ netsurf/gtk/res/netsurf.glade	(working copy)
@@ -777,16 +777,26 @@
                 <property name="stock_id">gtk-go-back</property>
               </widget>
               <packing>
-                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
               </packing>
             </child>
             <child>
+              <widget class="GtkToolButton" id="history">
+                <property name="visible">True</property>
+                <property name="is_important">True</property>
+                <property name="icon">arrow_down_8x32.png</property>
+              </widget>
+              <packing>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
               <widget class="GtkToolButton" id="toolForward">
                 <property name="visible">True</property>
                 <property name="stock_id">gtk-go-forward</property>
               </widget>
               <packing>
-                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
               </packing>
             </child>
             <child>
@@ -795,7 +805,7 @@
                 <property name="stock_id">gtk-stop</property>
               </widget>
               <packing>
-                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
               </packing>
             </child>
             <child>
@@ -804,7 +814,7 @@
                 <property name="stock_id">gtk-refresh</property>
               </widget>
               <packing>
-                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
               </packing>
             </child>
             <child>
@@ -813,7 +823,7 @@
                 <property name="stock_id">gtk-home</property>
               </widget>
               <packing>
-                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
               </packing>
             </child>
             <child>
@@ -823,13 +833,10 @@
                   <widget class="GtkEntry" id="URLBar">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
+                    <property name="has_focus">True</property>
                   </widget>
                 </child>
               </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="homogeneous">False</property>
-              </packing>
             </child>
             <child>
               <widget class="GtkToolItem" id="toolthrobber">
@@ -842,10 +849,6 @@
                   </widget>
                 </child>
               </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="homogeneous">False</property>
-              </packing>
             </child>
           </widget>
           <packing>
@@ -1390,6 +1393,25 @@
   </widget>
   <widget class="GtkMenu" id="menuPopup">
     <child>
+      <widget class="GtkMenuItem" id="open_link_in_background_tab_popup">
+        <property name="visible">True</property>
+        <property name="label" translatable="yes">Open Link in Back_ground Tab</property>
+        <property name="use_underline">True</property>
+      </widget>
+    </child>
+    <child>
+      <widget class="GtkMenuItem" id="open_link_in_focused_tab_popup">
+        <property name="visible">True</property>
+        <property name="label" translatable="yes">Open Link in _New Tab</property>
+        <property name="use_underline">True</property>
+      </widget>
+    </child>
+    <child>
+      <widget class="GtkSeparatorMenuItem" id="separator1">
+        <property name="visible">True</property>
+      </widget>
+    </child>
+    <child>
       <widget class="GtkImageMenuItem" id="popupBack">
         <property name="visible">True</property>
         <property name="label" translatable="yes">_Back</property>
@@ -1418,6 +1440,11 @@
       </widget>
     </child>
     <child>
+      <widget class="GtkSeparatorMenuItem" id="separator">
+        <property name="visible">True</property>
+      </widget>
+    </child>
+    <child>
       <widget class="GtkImageMenuItem" id="popupReload">
         <property name="visible">True</property>
         <property name="label" translatable="yes">_Reload</property>
@@ -1432,11 +1459,6 @@
       </widget>
     </child>
     <child>
-      <widget class="GtkSeparatorMenuItem" id="separator">
-        <property name="visible">True</property>
-      </widget>
-    </child>
-    <child>
       <widget class="GtkImageMenuItem" id="save_link_popup">
         <property name="visible">True</property>
         <property name="label" translatable="yes">Save Lin_k As...</property>
Index: netsurf/desktop/browser.c
===================================================================
--- netsurf/desktop/browser.c	(revision 7027)
+++ netsurf/desktop/browser.c	(working copy)
@@ -139,7 +139,7 @@
 
 struct browser_window *browser_window_create(const char *url,
 		struct browser_window *clone,
-		const char *referer, bool add_to_history, bool new_tab)
+		const char *referer, bool add_to_history, int new_tab_option)
 {
 	struct browser_window *bw;
 
@@ -160,7 +160,7 @@
 	bw->no_resize = true;
 
 	/* gui window */
-	if ((bw->window = gui_create_browser_window(bw, clone, new_tab)) == NULL) {
+	if ((bw->window = gui_create_browser_window(bw, clone, new_tab_option)) == NULL) {
 		browser_window_destroy(bw);
 		return NULL;
 	}
Index: netsurf/desktop/browser.h
===================================================================
--- netsurf/desktop/browser.h	(revision 7027)
+++ netsurf/desktop/browser.h	(working copy)
@@ -214,7 +214,7 @@
 
 struct browser_window * browser_window_create(const char *url,
 		struct browser_window *clone, const char *referrer,
-		bool add_to_history, bool new_tab);
+		bool add_to_history, int new_tab_option);
 void browser_window_initialise_common(struct browser_window *bw,
 		struct browser_window *clone);
 void browser_window_go(struct browser_window *bw, const char *url,
Index: netsurf/desktop/gui.h
===================================================================
--- netsurf/desktop/gui.h	(revision 7027)
+++ netsurf/desktop/gui.h	(working copy)
@@ -66,7 +66,7 @@
 void gui_quit(void);
 
 struct gui_window *gui_create_browser_window(struct browser_window *bw,
-		struct browser_window *clone, bool new_tab);
+		struct browser_window *clone, int new_tab_option);
 void gui_window_destroy(struct gui_window *g);
 void gui_window_set_title(struct gui_window *g, const char *title);
 void gui_window_redraw(struct gui_window *g, int x0, int y0, int x1, int y1);
