Index: launcher.c =================================================================== --- launcher.c (revision 23119) +++ launcher.c (working copy) @@ -651,8 +651,14 @@ void launcher_recreate_menu (LauncherPlugin *launcher) { + static gboolean protect = FALSE; int i; - + + if (G_UNLIKELY(protect)) + return; + + protect = TRUE; + if (launcher->menu) launcher_destroy_menu (launcher); @@ -669,6 +675,11 @@ GtkWidget *mi; LauncherEntry *entry = g_ptr_array_index (launcher->entries, i); + if (G_UNLIKELY(entry == NULL) + { + g_critical ("List of entries seems to be corrupt."); + break; + } mi = gtk_image_menu_item_new_with_label (entry->name ? entry->name : _("New Item")); gtk_widget_show (mi); @@ -711,6 +722,8 @@ { g_idle_add ((GSourceFunc) load_menu_icons, launcher); } + + protect = FALSE; } void