diff -up gnome-panel-2.27.4/gnome-panel/panel-toplevel.c.fix-monitor gnome-panel-2.27.4/gnome-panel/panel-toplevel.c
--- gnome-panel-2.27.4/gnome-panel/panel-toplevel.c.fix-monitor	2009-07-24 13:32:56.736614448 -0400
+++ gnome-panel-2.27.4/gnome-panel/panel-toplevel.c	2009-07-24 13:43:25.944864163 -0400
@@ -2518,6 +2518,13 @@ panel_toplevel_update_geometry (PanelTop
 				GtkRequisition *requisition)
 {
 	toplevel->priv->updated_geometry_initial = TRUE;
+
+	/* If the panel got assigned to a monitor that no longer exists, then
+	 * move it to one that does.
+	 */
+	if (toplevel->priv->monitor >= panel_multiscreen_monitors (gtk_window_get_screen (GTK_WINDOW (toplevel)))) {
+		panel_toplevel_set_monitor (toplevel, 0);
+	}
 	panel_toplevel_update_size (toplevel, requisition);
 	panel_toplevel_update_position (toplevel);
 
