-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Instead of defining menu's as we do now (using 'path' => ) , why don't we skip the entire building a tree thing and just define the menu entries as trees to begin with? ie : $menu['node']['add']['blog'][ITEM] = array(title => t('blog entry'), access => user_access('edit own blog')); $menu['blog'][ITEM] = array(title => t('blogs'), callback => 'blog_page', access => user_access('access content'), type => MENU_SUGGESTED_ITEM); (ITEM would just be a define('ITEM', '__item') to avoid namespace conflicts.) This would mean we could 'build' the menu, just by : $_menu = array(); foreach (module_implements('menu') as $module) { $_menu = array_merge_recursive($_menu, module_invoke($module, 'menu')); } Furthermore, we could solve the multiple menu tree requirement by defining menu items for the primary navigation such as : $menu[PRIMARY]['node']['add']['blog'] = array(title => t('new post!'), access => user_access('edit own blog')); It might also simplify the menu system to the point where mere mortals can understand it =) - -- Adrian Rossouw Drupal developer and Bryght Guy http://drupal.org | http://bryght.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (Darwin) iD8DBQFCtJp7gegMqdGlkasRAsY/AJwJARgxJz3zgNQnySSM54XqYi3bDgCgo7ml ewl/EPrMJRsafBJrqQdQxaA= =wlf3 -----END PGP SIGNATURE-----