diff --git modules/simpletest/tests/menu.test modules/simpletest/tests/menu.test  
index 7a45604..ffc3c11 100644  
--- modules/simpletest/tests/menu.test  
+++ modules/simpletest/tests/menu.test  
@@ -480,6 +480,103 @@ class MenuRouterTestCase extends DrupalWebTestCase {  
     $this->drupalGet("menu-test/arguments/$arg1/$arg2/task");  
     $this->assertRaw($expected, t('Inherited load arguments found.'));  
   }  
+  
+  /**  
+   * Rebuilds the menu based on the array given as parameter.  
+   *  
+   * Does the same as menu_rebuild() but uses the parameter instead the hook  
+   * invokation.  
+   *  
+   * @param array $menu  
+   *   Array with the format as used in hook_menu.  
+   */  
+  function menuRebuildHelper($menu) {  
+    list($menu, $masks) = _menu_router_build($menu);  
+    _menu_router_cache($menu);  
+    _menu_router_save($menu, $masks);  
+    _menu_navigation_links_rebuild($menu);  
+    // Clear the menu, page and block caches.  
+    menu_cache_clear_all();  
+  }  
+  
+  /**  
+   * Test if defined load functions are found.  
+   */  
+  function testMenuLoadFunctions() {  
+    // Create temporary functions  
+    if (!function_exists('foo_load')) {  
+      eval('function foo_load($foo){ return $foo; }');  
+    }  
+    if (!function_exists('bar_load')) {  
+      eval('function bar_load($bar){ return $bar; }');  
+    }  
+    if (!function_exists('page_callback')) {  
+      eval('function page_callback($args){ return $output = array("#markup" => ""); }');  
+    }  
+  
+    $menu = array(  
+      'admin/%foo/%bar' => array(  
+        'title' => 'Foobar',  
+        'type' => MENU_NORMAL_ITEM,  
+        'page callback' => 'page_callback',  
+        'page arguments' => array(1,2),  
+        'access arguments' => array('access content'),  
+      ),  
+    );  
+    $this->menuRebuildHelper($menu);  
+  
+    $query = db_select('menu_router', 'mr');  
+    $query->condition('path', 'admin/%/%');  
+    $query->addField('mr', 'load_functions');  
+    $load_functions = $query->execute()->fetchColumn();  
+    if ($this->assertFalse(empty($load_functions), 'Load functions found')) {  
+      $load_functions = unserialize($load_functions);  
+      $this->assertEqual(array('foo_load', 'bar_load'), array_values($load_functions), 'Two load functions found');  
+    }  
+  }  
+  
+  /**  
+   * Test if defined load functions are found even if parent declares  
+   * "load arguments".  
+   *  
+   * @link http://drupal.org/node/979958  
+   */  
+  function testMenuLoadFunctionsWithParentLoadArguments() {  
+    // Create temporary functions  
+    if (!function_exists('foobar_load')) {  
+      eval('function foobar_load($foobar){ return $foobar; }');  
+    }  
+    if (!function_exists('page_callback')) {  
+      eval('function page_callback($args){ return $output = array("#markup" => ""); }');  
+    }  
+  
+    $menu = array(  
+      'admin/foo/bar' => array(  
+        'title' => 'Foo',  
+        'type' => MENU_NORMAL_ITEM,  
+        'load arguments' => array('ParentPage'),  
+        'page callback' => 'page_callback',  
+        'access arguments' => array('access content'),  
+      ),  
+      'admin/foo/bar/%foobar' => array(  
+        'title' => 'Bar',  
+        'type' => MENU_LOCAL_TASK,  
+        'page callback' => 'page_callback',  
+        'page arguments' => array(3),  
+        'access arguments' => array('access content'),  
+      ),  
+    );  
+    $this->menuRebuildHelper($menu);  
+  
+    $query = db_select('menu_router', 'mr');  
+    $query->condition('path', 'admin/foo/bar/%');  
+    $query->addField('mr', 'load_functions');  
+    $load_functions = $query->execute()->fetchColumn();  
+    if ($this->assertFalse(empty($load_functions), 'Load function found')) {  
+      $load_functions = unserialize($load_functions);  
+      $this->assertEqual('foobar_load', reset($load_functions), 'Load function "foobar_load" found');  
+    }  
+  }  
 }  
   
 /**  
