--- eog-2.28.2/src/eog-window.c	2011-03-02 12:35:46.566311721 -0500
+++ eog-2.28.2-bz164421/src/eog-window.c	2011-03-02 18:51:14.369291808 -0500
@@ -4512,9 +4512,25 @@
 				       &hints,
 				       GDK_HINT_MIN_SIZE);
 
+	gint gconf_height, gconf_width;
+	gconf_width = gconf_client_get_int (gconf_client_get_default (),
+										EOG_CONF_UI_WIDTH,
+										NULL);
+
+	gconf_height = gconf_client_get_int (gconf_client_get_default (),
+										 EOG_CONF_UI_HEIGHT,
+										 NULL);
+
+	if ((gconf_height > 1) && (gconf_width > 1)) {
+	  gtk_window_set_default_size (GTK_WINDOW (window),
+								   gconf_width,
+								   gconf_height);
+
+	} else {
 	gtk_window_set_default_size (GTK_WINDOW (window),
 				     EOG_WINDOW_DEFAULT_WIDTH,
 				     EOG_WINDOW_DEFAULT_HEIGHT);
+	}
 
 	gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
 
@@ -4551,6 +4567,19 @@
 	eog_plugin_engine_garbage_collect ();
 
 	if (priv->store != NULL) {
+	  gint width, height;
+	  gtk_window_get_size (GTK_WINDOW(window), &width, &height);
+
+	  gconf_client_set_int (gconf_client_get_default (),
+							EOG_CONF_UI_WIDTH,
+							width,
+							NULL);
+
+	  gconf_client_set_int (gconf_client_get_default (),
+							EOG_CONF_UI_HEIGHT,
+							height,
+							NULL);
+
 		g_signal_handlers_disconnect_by_func (priv->store,
 					      eog_window_list_store_image_added,
 					      window);

--- eog-2.28.2/src/eog-config-keys.h	2011-03-04 12:33:53.047228816 -0500
+++ eog-2.28.2-bz164421/src/eog-config-keys.h	   2011-03-02 18:40:51.933229923 -0500
@@ -56,5 +55,7 @@
 #define EOG_CONF_UI_DISABLE_TRASH_CONFIRMATION	"/apps/eog/ui/disable_trash_confirmation"
 #define EOG_CONF_UI_FILECHOOSER_XDG_FALLBACK	"/apps/eog/ui/filechooser_xdg_fallback"
 #define EOG_CONF_UI_PROPSDIALOG_NETBOOK_MODE	"/apps/eog/ui/propsdialog_netbook_mode"
+#define EOG_CONF_UI_WIDTH "/apps/eog/ui/width"
+#define EOG_CONF_UI_HEIGHT "/apps/eog/ui/height"
 
 #define EOG_CONF_PLUGINS_ACTIVE_PLUGINS         "/apps/eog/plugins/active_plugins"
