diff --git a/includes/path.inc b/includes/path.inc
index 2e35711..0edde79 100644
--- a/includes/path.inc
+++ b/includes/path.inc
@@ -167,16 +167,17 @@ function drupal_lookup_path($action, $path = '', $path_language = NULL) {
         // See the queries above.
         if ($path_language == LANGUAGE_NONE) {
           unset($args[':language']);
-          $result = db_query("SELECT source FROM {url_alias} WHERE alias = :alias AND language = :language_none ORDER BY pid DESC", $args);
+          $result = db_query("SELECT source, alias FROM {url_alias} WHERE alias = :alias AND language = :language_none ORDER BY pid DESC", $args);
         }
         elseif ($path_language > LANGUAGE_NONE) {
-          $result = db_query("SELECT source FROM {url_alias} WHERE alias = :alias AND language IN (:language, :language_none) ORDER BY language DESC, pid DESC", $args);
+          $result = db_query("SELECT source, alias FROM {url_alias} WHERE alias = :alias AND language IN (:language, :language_none) ORDER BY language DESC, pid DESC", $args);
         }
         else {
-          $result = db_query("SELECT source FROM {url_alias} WHERE alias = :alias AND language IN (:language, :language_none) ORDER BY language ASC, pid DESC", $args);
+          $result = db_query("SELECT source, alias FROM {url_alias} WHERE alias = :alias AND language IN (:language, :language_none) ORDER BY language ASC, pid DESC", $args);
         }
-        if ($source = $result->fetchField()) {
-          $cache['map'][$path_language][$source] = $path;
+        if ($db_alias = $result->fetchAssoc()) {
+          $source = $db_alias['source'];
+          $cache['map'][$path_language][$source] = $db_alias['alias'];
         }
         else {
           // We can't record anything into $map because we do not have a valid
