- items().push_back (MenuElem (_("New group..."), mem_fun (*this, &RouteGroupMenu::new_group)));
- items().push_back (SeparatorElem ());
+ delete _menu;
+
+ /* Note: don't use manage() here, otherwise if our _menu object is attached as a submenu
+ and its parent is then destroyed, our _menu object will be deleted and we'll have no
+ way of knowing about it. Without manage(), when the above happens our _menu's gobject
+ will be destroyed and its value set to 0, so we know.
+ */
+ _menu = new Menu;
+
+ MenuList& items = _menu->items ();
+
+ items.push_back (MenuElem (_("New Group..."), sigc::mem_fun (*this, &RouteGroupMenu::new_group)));
+ items.push_back (SeparatorElem ());