diff --git a/data/xchat-gnome-ui.xml b/data/xchat-gnome-ui.xml
index 68531d8..7c6d3fd 100644
--- a/data/xchat-gnome-ui.xml
+++ b/data/xchat-gnome-ui.xml
@@ -46,6 +46,7 @@
 			<menuitem name="ViewNextDiscussion" action="ViewNextDiscussion"/>
 			<separator name="ViewSep1"/>
 			<menuitem name="ViewShowSidebar" action="ViewShowSidebar"/>
+			<menuitem name="ViewFullscreen" action="ViewFullscreen"/>
 		</menu>
 
 		<menu name="HelpMenu" action="Help">
diff --git a/src/fe-gnome/fe-gnome.c b/src/fe-gnome/fe-gnome.c
index fa5530d..b4168ce 100644
--- a/src/fe-gnome/fe-gnome.c
+++ b/src/fe-gnome/fe-gnome.c
@@ -54,11 +54,13 @@
 #include "../common/cfgfiles.h"
 #include "../common/plugin.h"
 
-static gboolean  opt_version   = FALSE;
-static gboolean  opt_noplugins = FALSE;
-static gchar    *opt_cfgdir    = NULL;
+static gboolean  opt_fullscreen = FALSE;
+static gboolean  opt_version    = FALSE;
+static gboolean  opt_noplugins  = FALSE;
+static gchar    *opt_cfgdir     = NULL;
 
 static GOptionEntry entries[] = {
+	{"full-screen",'f', 0, G_OPTION_ARG_NONE,     &opt_fullscreen,	     N_("Full-screen the window"),                          NULL},
 	{"cfgdir",     'd', 0, G_OPTION_ARG_FILENAME, &opt_cfgdir,           N_("Use directory instead of the default config dir"), "directory"},
 	{"no-auto",    'a', 0, G_OPTION_ARG_NONE,     &arg_dont_autoconnect, N_("Don't auto-connect to servers"),                   NULL},
 	{"no-plugins", 'n', 0, G_OPTION_ARG_NONE,     &opt_noplugins,        N_("Don't auto-load plugins"),                         NULL},
@@ -149,7 +151,7 @@ fe_init (void)
 	servlist_init ();
 	initialize_gui_2 ();
 	load_preferences ();
-	run_main_window ();
+	run_main_window (opt_fullscreen);
 
 	/* Force various window-related options to match our interaction model */
 	prefs.use_server_tab = TRUE;
diff --git a/src/fe-gnome/main-window.c b/src/fe-gnome/main-window.c
index e0ee691..a2cd429 100644
--- a/src/fe-gnome/main-window.c
+++ b/src/fe-gnome/main-window.c
@@ -76,6 +76,7 @@ static void on_help_about_activate (GtkAction *action, gpointer data);
 static void on_nickname_clicked (GtkButton *widget, gpointer user_data);
 static void on_users_toggled (GtkToggleButton *widget, gpointer user_data);
 static void on_sidebar_toggled (GtkToggleAction *action, gpointer user_data);
+static void on_fullscreen_toggled (GtkToggleAction *action, gpointer user_data);
 
 static void on_add_widget (GtkUIManager *manager, GtkWidget *menu, GtkWidget *menu_vbox);
 
@@ -135,7 +136,8 @@ static GtkActionEntry action_entries [] = {
 static const GtkToggleActionEntry toggle_action_entries [] =
 {
 	/* View menu */
-	{ "ViewShowSidebar", NULL, N_("_Sidebar"), "F9", "", G_CALLBACK (on_sidebar_toggled), TRUE }
+	{ "ViewShowSidebar", NULL, N_("_Sidebar"), "F9", "", G_CALLBACK (on_sidebar_toggled), TRUE },
+	{ "ViewFullscreen", NULL, N_("_Fullscreen"), "F11", "", G_CALLBACK (on_fullscreen_toggled), FALSE }
 };
 
 void
@@ -228,7 +230,7 @@ initialize_main_window (void)
 }
 
 void
-run_main_window ()
+run_main_window (gboolean fullscreen)
 {
 	GConfClient *client = gconf_client_get_default();
 
@@ -277,6 +279,10 @@ run_main_window ()
 	g_object_unref (client);
 
 	gtk_widget_show (gui.main_window);
+
+	action = gtk_action_group_get_action(gui.action_group,
+                                                        "ViewFullscreen");
+	gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), fullscreen);
 }
 
 void
@@ -540,6 +546,16 @@ on_sidebar_toggled (GtkToggleAction *action, gpointer data)
 }
 
 static void
+on_fullscreen_toggled (GtkToggleAction *action, gpointer data)
+{
+	if (gtk_toggle_action_get_active(action)) {
+		gtk_window_fullscreen( GTK_WINDOW(gui.main_window));
+	} else {
+		gtk_window_unfullscreen( GTK_WINDOW(gui.main_window));
+	}
+}
+
+static void
 nickname_dialog_entry_activated (GtkEntry *entry, GtkDialog *dialog)
 {
 	gtk_dialog_response (dialog, GTK_RESPONSE_OK);
diff --git a/src/fe-gnome/main-window.h b/src/fe-gnome/main-window.h
index 2b36809..7cb350f 100644
--- a/src/fe-gnome/main-window.h
+++ b/src/fe-gnome/main-window.h
@@ -25,7 +25,7 @@
 #define XCHAT_GNOME_MAIN_WINDOW_H
 
 void initialize_main_window (void);
-void run_main_window        (void);
+void run_main_window        (gboolean fullscreen);
 void save_main_window       (void);
 void rename_main_window     (gchar *server, gchar *channel);
 void set_nickname_label     (struct server *serv, char *newnick);
