--- globalredirect.module.orig	2008-12-22 10:34:32.000000000 +0000
+++ globalredirect.module	2010-11-26 23:42:41.000000000 +0000
@@ -151,7 +151,9 @@
     }
 
     // If no alias was returned, the final check is to direct non-clean to clean - if clean is enabled
-    if ((variable_get('globalredirect_nonclean2clean', GLOBALREDIRECT_NONCLEAN2CLEAN_ENABLED) == GLOBALREDIRECT_NONCLEAN2CLEAN_ENABLED) && ((bool)variable_get('clean_url', 0)) && strpos(request_uri(), '?q=')) {
+    $colonpos = strpos($request, ':');
+    $absolute = ($colonpos !== FALSE && !preg_match('![/?#]!', substr($request, 0, $colonpos)));
+    if ((variable_get('globalredirect_nonclean2clean', GLOBALREDIRECT_NONCLEAN2CLEAN_ENABLED) == GLOBALREDIRECT_NONCLEAN2CLEAN_ENABLED) && ((bool)variable_get('clean_url', 0)) && strpos(request_uri(), '?q=') && !$absolute) {
       drupal_goto($request, $query_string, NULL, 301);
     }
 
