diff -rub epiphany-1.2.2/lib/ephy-prefs.h epiphany-1.2.2-dev/lib/ephy-prefs.h
--- epiphany-1.2.2/lib/ephy-prefs.h	2004-01-23 23:50:01.000000000 +0100
+++ epiphany-1.2.2-dev/lib/ephy-prefs.h	2004-04-14 14:39:50.980817028 +0200
@@ -53,6 +53,11 @@
 #define CONF_LOCKDOWN_DISABLE_PRINTING		"/desktop/gnome/lockdown/disable_printing"
 #define CONF_LOCKDOWN_DISABLE_PRINT_SETUP	"/desktop/gnome/lockdown/disable_print_setup"
 #define CONF_LOCKDOWN_DISABLE_COMMAND_LINE	"/desktop/gnome/lockdown/disable_command_line"
+#define CONF_LOCKDOWN_DISABLE_FILE_OPEN      	  "/apps/epiphany/lockdown/disable_file_open"
+#define CONF_LOCKDOWN_DISABLE_SESSION_PERSISTENCE "/apps/epiphany/lockdown/disable_session_persistence"
+#define CONF_LOCKDOWN_DISABLE_QUIT      	  "/apps/epiphany/lockdown/disable_quit"
+#define CONF_LOCKDOWN_FIRST_WINDOW_FULLSCREEN	  "/apps/epiphany/lockdown/first_window_fullscreen"
+#define CONF_LOCKDOWN_HIDE_EXIT_FULLSCREEN_BUTTON "/apps/epiphany/lockdown/hide_exit_fullscreen_button"
 
 /* System prefs */
 #define CONF_DESKTOP_FTP_HANDLER	"/desktop/gnome/url-handlers/ftp/command"
diff -rub epiphany-1.2.2/src/ephy-session.c epiphany-1.2.2-dev/src/ephy-session.c
--- epiphany-1.2.2/src/ephy-session.c	2004-03-02 13:42:34.000000000 +0100
+++ epiphany-1.2.2-dev/src/ephy-session.c	2004-04-06 17:48:54.000000000 +0200
@@ -372,6 +372,9 @@
 
 	LOG ("ephy_session_autoresume")
 
+	if (eel_gconf_get_boolean (CONF_LOCKDOWN_DISABLE_SESSION_PERSISTENCE))
+          return retval;
+
 	if (session->priv->windows != NULL) return FALSE;
 
 	if (session->priv->resume_dialog)
@@ -518,6 +521,9 @@
 
 	LOG ("ephy_sesion_save %s", filename)
 
+	if (eel_gconf_get_boolean (CONF_LOCKDOWN_DISABLE_SESSION_PERSISTENCE))
+          return;
+
 	if (session->priv->windows == NULL)
 	{
 		session_delete (session, filename);
@@ -642,6 +648,9 @@
 
 	LOG ("ephy_sesion_load %s", filename)
 
+	if (eel_gconf_get_boolean (CONF_LOCKDOWN_DISABLE_SESSION_PERSISTENCE))
+          return;
+
 	save_to = get_session_filename (filename);
 
 	doc = xmlParseFile (save_to);
diff -rub epiphany-1.2.2/src/ephy-window.c epiphany-1.2.2-dev/src/ephy-window.c
--- epiphany-1.2.2/src/ephy-window.c	2004-02-24 18:43:48.000000000 +0100
+++ epiphany-1.2.2-dev/src/ephy-window.c	2004-04-14 14:39:02.679859185 +0200
@@ -46,6 +46,7 @@
 #include "ephy-tabs-menu.h"
 #include "ephy-stock-icons.h"
 #include "ephy-extension.h"
+#include "ephy-session.h"
 #include "ephy-favicon-cache.h"
 
 #include <string.h>
@@ -61,6 +62,8 @@
 #include <gtk/gtkdialog.h>
 #include <gtk/gtkmessagedialog.h>
 
+static guint window_counter = 0;
+
 static void ephy_window_class_init		(EphyWindowClass *klass);
 static void ephy_window_init			(EphyWindow *gs);
 static void ephy_window_finalize		(GObject *object);
@@ -327,6 +330,7 @@
 	gboolean is_fullscreen;
 	gboolean is_ppview;
 	gboolean has_size;
+	gboolean is_first;
 	guint num_tabs;
 	guint tab_message_cid;
 	guint help_message_cid;
@@ -345,6 +349,7 @@
 	guint disable_save_to_disk_notifier_id;
 	guint disable_command_line_notifier_id;
 	guint browse_with_caret_notifier_id;
+	guint disable_file_open_notifier_id;
 };
 
 enum
@@ -563,6 +568,8 @@
 
 	window->priv->is_fullscreen = TRUE;
 
+  if (!eel_gconf_get_boolean (CONF_LOCKDOWN_HIDE_EXIT_FULLSCREEN_BUTTON))
+  {
 	popup = gtk_window_new (GTK_WINDOW_POPUP);
 	window->priv->exit_fullscreen_popup = popup;
 
@@ -588,7 +595,7 @@
 	update_exit_fullscreen_popup_position (window);
 
 	gtk_widget_show (popup);
-
+  }
 	g_signal_connect (G_OBJECT (gdk_screen_get_default ()),
                           "size-changed", G_CALLBACK (size_changed_cb),
 			  window);
@@ -1765,7 +1772,7 @@
 	GtkActionGroup *popups_action_group = GTK_ACTION_GROUP (window->priv->popups_action_group);
 	GtkAction *action;
 	gboolean bookmarks_editable, save_to_disk;
-	gboolean printing, print_setup;
+	gboolean printing, print_setup, file_open;
 
 	action = gtk_action_group_get_action (action_group, "ViewToolbar");
 	gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action),
@@ -1808,6 +1815,10 @@
 	action = gtk_action_group_get_action (popups_action_group, "SaveImageAs");
 	g_object_set (action, "sensitive", save_to_disk, NULL);
 
+	file_open = !eel_gconf_get_boolean (CONF_LOCKDOWN_DISABLE_FILE_OPEN);
+	action = gtk_action_group_get_action (action_group, "FileOpen");
+	g_object_set (action, "sensitive", file_open, NULL);
+
 	printing = !eel_gconf_get_boolean (CONF_LOCKDOWN_DISABLE_PRINTING);
 	print_setup = !eel_gconf_get_boolean (CONF_LOCKDOWN_DISABLE_PRINT_SETUP) &&
 		!eel_gconf_get_boolean (CONF_LOCKDOWN_DISABLE_COMMAND_LINE);
@@ -1881,6 +1892,7 @@
 ephy_window_init (EphyWindow *window)
 {
 	EphyExtension *manager;
+        EphySession *session;
 
 	LOG ("EphyWindow initialising %p", window)
 
@@ -1892,8 +1904,8 @@
 	window->priv->closing = FALSE;
 	window->priv->ppview_toolbar = NULL;
 	window->priv->exit_fullscreen_popup = NULL;
-	window->priv->num_tabs = 0;
 	window->priv->is_fullscreen = FALSE;
+	window->priv->num_tabs = 0;
 	window->priv->is_ppview = FALSE;
 	window->priv->has_size = FALSE;
 
@@ -1931,6 +1943,15 @@
 			  GTK_WIDGET (window->priv->toolbar),
 			  FALSE, FALSE, 0);
 
+        /* is the first one ? */
+        session = EPHY_SESSION(ephy_shell_get_session(ephy_shell));
+        if (g_list_length(ephy_session_get_windows(session)) == 0) {
+          window->priv->is_first = TRUE;
+        }
+        else {
+          window->priv->is_first = FALSE;
+        }
+
 	/* Once the window is sufficiently created let the extensions attach to it */
 	manager = EPHY_EXTENSION (ephy_shell_get_extensions_manager (ephy_shell));
 	ephy_extension_attach_window (manager, window);
@@ -1996,6 +2017,10 @@
 		(CONF_LOCKDOWN_DISABLE_SAVE_TO_DISK,
 		 (GConfClientNotifyFunc)actions_notifier, window);
 
+	window->priv->disable_file_open_notifier_id = eel_gconf_notification_add
+		(CONF_LOCKDOWN_DISABLE_FILE_OPEN,
+		 (GConfClientNotifyFunc)actions_notifier, window);
+
 	window->priv->disable_command_line_notifier_id = eel_gconf_notification_add
 		(CONF_LOCKDOWN_DISABLE_COMMAND_LINE,
 		 (GConfClientNotifyFunc)actions_notifier, window);
@@ -2010,6 +2035,13 @@
 	gtk_ui_manager_ensure_update (GTK_UI_MANAGER (window->ui_merge));
 
 	init_menu_updaters (window);
+
+        /* ensure first window is fullscreen in case of lockdown mode */
+        if (eel_gconf_get_boolean (CONF_LOCKDOWN_FIRST_WINDOW_FULLSCREEN) &&
+              window->priv->is_first)
+	{
+          gtk_window_fullscreen (GTK_WINDOW (window));
+        }
 }
 
 static void
@@ -2029,6 +2061,7 @@
 	eel_gconf_notification_remove (window->priv->disable_printing_notifier_id);
 	eel_gconf_notification_remove (window->priv->disable_print_setup_notifier_id);
 	eel_gconf_notification_remove (window->priv->disable_save_to_disk_notifier_id);
+	eel_gconf_notification_remove (window->priv->disable_file_open_notifier_id);
 	eel_gconf_notification_remove (window->priv->disable_command_line_notifier_id);
 	eel_gconf_notification_remove (window->priv->browse_with_caret_notifier_id);
 
@@ -2164,6 +2197,13 @@
 	g_return_if_fail (EPHY_IS_WINDOW (window));
 	g_return_if_fail (EPHY_IS_TAB (tab));
 
+        if (eel_gconf_get_boolean (CONF_LOCKDOWN_DISABLE_QUIT) &&
+	    window->priv->is_first)
+	{
+		if (gtk_notebook_get_n_pages (window->priv->notebook) <= 1)
+	  	  return;
+	}
+
 	embed = ephy_tab_get_embed (tab);
 	g_return_if_fail (EPHY_IS_EMBED (embed));
 
