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);