Index: includes/menu.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/menu.inc,v
retrieving revision 1.375
diff -u -p -r1.375 menu.inc
--- includes/menu.inc	14 Jan 2010 13:45:33 -0000	1.375
+++ includes/menu.inc	23 Jan 2010 10:17:37 -0000
@@ -2180,7 +2180,33 @@ function menu_link_load($mlid) {
     $query = db_select('menu_links', 'ml');
     $query->leftJoin('menu_router', 'm', 'm.path = ml.router_path');
     $query->fields('ml');
-    $query->fields('m');
+    // SELECT all the columns from {menu_router} except weight, which
+    // should be taken from {menu_links}.
+    $query->fields('m', array(
+      'path',
+      'load_functions',
+      'to_arg_functions',
+      'access_callback',
+      'access_arguments',
+      'page_callback',
+      'page_arguments',
+      'delivery_callback',
+      'fit',
+      'number_parts',
+      'context',
+      'tab_parent',
+      'tab_root',
+      'title',
+      'title_callback',
+      'title_arguments',
+      'theme_callback',
+      'theme_arguments',
+      'type',
+      'block_callback',
+      'description',
+      'position',
+      'file',
+    ));
     $query->condition('ml.mlid', $mlid);
     if ($item = $query->execute()->fetchAssoc()) {
       _menu_link_translate($item);
Index: modules/menu/menu.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/menu/menu.test,v
retrieving revision 1.31
diff -u -p -r1.31 menu.test
--- modules/menu/menu.test	9 Jan 2010 21:54:00 -0000	1.31
+++ modules/menu/menu.test	23 Jan 2010 10:17:37 -0000
@@ -579,11 +579,20 @@ class MenuNodeTestCase extends DrupalWeb
     $edit = array(
       'menu[enabled]' => 1,
       'menu[link_title]' => $node_title,
+      'menu[weight]' => 17,
     );
     $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save'));
     // Assert that the link exists.
     $this->drupalGet('');
     $this->assertLink($node_title);
+    
+    // Check that the menu item we saved displays the weight we saved.
+    // when we go back to edit that node.
+    // http://drupal.org/node/605926
+    // Get node edit form.
+    $this->drupalGet('node/'. $node->nid. '/edit');
+    // Look at its selected weight option,.
+    $this->assertOptionSelected('edit-menu-weight', 17, "Changed menu weight was correct in edit form");
 
     // Edit the node and remove the menu link.
     $edit = array(
