Index: includes/path.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/path.inc,v
retrieving revision 1.32
diff -u -r1.32 path.inc
--- includes/path.inc	4 Jan 2009 20:04:32 -0000	1.32
+++ includes/path.inc	28 Jan 2009 21:37:07 -0000
@@ -66,7 +66,7 @@
         return $map[$path_language][$path];
       }
       // Get the most fitting result falling back with alias without language
-      $alias = db_query("SELECT dst FROM {url_alias} WHERE src = :src AND language IN(:language, '') ORDER BY language DESC", array(
+      $alias = db_query("SELECT dst FROM {url_alias} WHERE src = :src AND language IN(:language, '') ORDER BY language, pid DESC", array(
         ':src' => $path,
         ':language' => $path_language))
         ->fetchField();
@@ -80,7 +80,7 @@
       $src = '';
       if (!isset($map[$path_language]) || !($src = array_search($path, $map[$path_language]))) {
         // Get the most fitting result falling back with alias without language
-        if ($src = db_query("SELECT src FROM {url_alias} WHERE dst = :dst AND language IN(:language, '') ORDER BY language DESC", array(
+        if ($src = db_query("SELECT src FROM {url_alias} WHERE dst = :dst AND language IN(:language, '') ORDER BY language, pid DESC", array(
                      ':dst' => $path,
                      ':language' => $path_language))
             ->fetchField()) {
Index: modules/system/system.install
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.install,v
retrieving revision 1.305
diff -u -r1.305 system.install
--- modules/system/system.install	31 Jan 2009 16:50:57 -0000	1.305
+++ modules/system/system.install	2 Feb 2009 12:19:08 -0000
@@ -1256,11 +1256,11 @@
       ),
     ),
     'unique keys' => array(
-      'dst_language' => array('dst', 'language'),
+      'dst_language' => array('dst', 'language', 'pid'),
     ),
     'primary key' => array('pid'),
     'indexes' => array(
-      'src_language' => array('src', 'language'),
+      'src_language' => array('src', 'language', 'pid'),
     ),
   );
 
@@ -3216,6 +3216,18 @@
 }
 
 /**
+ * Add pid column to {url_alias} indexes.
+ */
+function system_update_7019() {
+  $ret = array();
+  db_drop_index($ret, 'url_alias', 'dst_language');
+  db_add_index($ret, 'url_alias', 'dst_language', array('dst', 'language', 'pid'));
+  db_drop_index($ret, 'url_alias', 'src_language');
+  db_add_index($ret, 'url_alias', 'src_language', array('src', 'language', 'pid'));
+
+  return $ret;
+}
+/**
  * @} End of "defgroup updates-6.x-to-7.x"
  * The next series of updates should start at 8000.
  */

