Index: securepages/securepages.module =================================================================== --- securepages/securepages.module (revision 1788) +++ securepages/securepages.module (working copy) @@ -212,9 +212,21 @@ * secure pages settings */ if (function_exists('menu_get_item')) { - $item = menu_get_item(menu_get_active_item()); - if (isset($item['secure'])) { - return $item['secure']; + $mid = menu_get_active_item(); + + /** + * Follow the path up to find the first "secure" attribute. + * Like Drupal's _menu_item_is_accessible() function. + */ + $menu = menu_get_menu(); + $menupath = isset($menu['items'][$mid]['path']) ? $menu['items'][$mid]['path'] : NULL; + while ($menupath && (!isset($menu['path index'][$menupath]) || !isset($menu['items'][$menu['path index'][$menupath]]['secure']))) { + $menupath = substr($menupath, 0, strrpos($menupath, '/')); + } + $menuitem = $menu['items'][$menu['path index'][$menupath]]; + + if (isset($menuitem['secure'])) { + return $menuitem['secure']; } }