--- libdbusmenu-gtk/parser.c.orig 2012-01-30 19:55:22.554084360 -0800 +++ libdbusmenu-gtk/parser.c 2012-01-30 19:59:35.871340505 -0800 @@ -1109,8 +1109,12 @@ if (item != NULL) { GtkWidget * menu = GTK_WIDGET (g_value_get_object (&prop_value)); - parse_menu_structure_helper(menu, &recurse); - watch_submenu(item, menu); + /* Ensure the submenu isn't being set to NULL to remove it + * (ex. Geany does this) */ + if (menu != NULL) { + parse_menu_structure_helper(menu, &recurse); + watch_submenu(item, menu); + } } else { /* Note: it would be really odd that we wouldn't have a cached item, but we should handle that appropriately. */