Index: menu.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/menu.inc,v
retrieving revision 1.71.2.1
diff -u -r1.71.2.1 menu.inc
--- menu.inc	22 Jan 2005 09:09:52 -0000	1.71.2.1
+++ menu.inc	16 Feb 2005 17:38:39 -0000
@@ -712,15 +712,25 @@
     if (!array_key_exists('weight', $item)) {
       $item['weight'] = 0;
     }
+    if (!array_key_exists('priority', $item)) {
+      $item['priority'] = 0;
+    }
     $mid = $temp_mid;
     if (array_key_exists($item['path'], $_menu['path index'])) {
-      // Newer menu items overwrite older ones.
-      unset($_menu['items'][$_menu['path index'][$item['path']]]);
+      // new item's priority greater than existing one
+      if($item['priority'] > $_menu['items'][$_menu['path index'][$item['path']]]['priority']) {
+        // Newer menu items overwrite older ones.
+        unset($_menu['items'][$_menu['path index'][$item['path']]]);
+        $_menu['items'][$mid] = $item;
+        $_menu['path index'][$item['path']] = $mid;
+        $temp_mid--;
+      }
+    }
+    else {
+      $_menu['items'][$mid] = $item;
+      $_menu['path index'][$item['path']] = $mid;
+      $temp_mid--;
     }
-    $_menu['items'][$mid] = $item;
-    $_menu['path index'][$item['path']] = $mid;
-
-    $temp_mid--;
   }
 
   // Now fetch items from the DB, reassigning menu IDs as needed.
