--- gnome-panel-2.18.0/gnome-panel/panel-run-dialog.c.fix-invalid-read 2007-04-04 15:35:14.000000000 -0400 +++ gnome-panel-2.18.0/gnome-panel/panel-run-dialog.c 2007-04-04 15:40:24.000000000 -0400 @@ -111,6 +111,8 @@ static PanelRunDialog *static_dialog = NULL; +static void panel_run_dialog_disconnect_pixmap (PanelRunDialog *dialog); + static void panel_run_dialog_destroy (PanelRunDialog *dialog) { @@ -165,6 +167,8 @@ if (dialog->completion) g_completion_free (dialog->completion); dialog->completion = NULL; + + panel_run_dialog_disconnect_pixmap (dialog); g_free (dialog); } @@ -1905,6 +1909,17 @@ } static void +panel_run_dialog_disconnect_pixmap (PanelRunDialog *dialog) +{ + g_signal_handlers_disconnect_by_func (dialog->pixmap, + G_CALLBACK (panel_run_dialog_style_set), + dialog); + g_signal_handlers_disconnect_by_func (dialog->pixmap, + G_CALLBACK (panel_run_dialog_screen_changed), + dialog); +} + +static void panel_run_dialog_static_dialog_destroyed (PanelRunDialog *dialog) { /* just reset the static dialog to NULL for next time */