Index: includes/bootstrap.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/bootstrap.inc,v
retrieving revision 1.60
diff -u -F^f -r1.60 bootstrap.inc
--- includes/bootstrap.inc	5 Aug 2005 00:49:02 -0000	1.60
+++ includes/bootstrap.inc	17 Aug 2005 12:46:11 -0000
@@ -530,13 +530,25 @@ function drupal_get_path_alias($path) {
   if ($alias = drupal_lookup_path('source', $path)) {
     return $alias;
   }
-  elseif (function_exists('conf_url_rewrite')) {
-    return conf_url_rewrite($path, 'outgoing');
+  return url_rewrite('outgoing', $path);
+}
+
+function url_rewrite($op, &$path) {
+  static $modules;
+  if (!isset($modules)) {
+    $modules['outgoing'] = module_implements('url_rewrite');
+    $modules['incoming'] = array_reverse($modules['outgoing']);
   }
-  else {
-    // No alias found. Return the normal path.
+  if (empty($modules[$op])) {
     return $path;
   }
+  else {
+    foreach($modules[$op] as $module) {
+      $function = $module .'_url_rewrite';
+      // we can't use module_invoke because $path is a references
+      $function($op, $path);
+    }
+  }
 }
 
 /**
@@ -680,6 +692,7 @@ function arg($index) {
 
   if (empty($arguments) || $q != $_GET['q']) {
     $arguments = explode('/', $_GET['q']);
+    $q = $_GET['q'];
   }
 
   if (isset($arguments[$index])) {
Index: includes/common.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/common.inc,v
retrieving revision 1.467
diff -u -F^f -r1.467 common.inc
--- includes/common.inc	16 Aug 2005 18:06:18 -0000	1.467
+++ includes/common.inc	17 Aug 2005 12:46:12 -0000
@@ -138,12 +138,7 @@ function drupal_get_normal_path($path) {
   if ($src = drupal_lookup_path('alias', $path)) {
     return $src;
   }
-  elseif (function_exists('conf_url_rewrite')) {
-    return conf_url_rewrite($path, 'incoming');
-  }
-  else {
-    return $path;
-  }
+  return url_rewrite('incoming', $path);
 }
 
 /**
