diff -ur modules/globalredirect//globalredirect.module modules-patched/globalredirect//globalredirect.module --- modules/globalredirect//globalredirect.module 2011-12-21 06:19:56.000000000 +1100 +++ modules-patched/globalredirect//globalredirect.module 2012-02-07 22:40:28.000000000 +1100 @@ -85,7 +85,7 @@ // Redirect if the current request does not refer to the front page in the // configured fashion (with or without a prefix) - if (isset($_REQUEST['q']) && $_REQUEST['q'] != $prefix) { + if (isset($_REQUEST['q']) && rtrim($_REQUEST['q'],'/') != $prefix) { drupal_goto('', $query_string, NULL, 301); } elseif ($settings['nonclean_to_clean'] && @@ -176,6 +176,7 @@ // Find an alias (if any) for the request $langcode = isset($options['language']->language) ? $options['language']->language : ''; $alias = drupal_get_path_alias($request, $langcode); + $orig_alias = $alias; if (function_exists('custom_url_rewrite_outbound')) { // Modules may alter outbound links by reference. custom_url_rewrite_outbound($alias, $options, $request); @@ -183,6 +184,9 @@ if ($prefix && $alias) { $prefix .= '/'; } + if ($alias == $prefix.$orig_alias) { + $alias = $orig_alias; + } // Alias case sensitivity check. If there is an alias from the previous // lookup, do a query to test for case.