Index: admin_menu.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/admin_menu/admin_menu.module,v
retrieving revision 1.43.2.17
diff -u -p -r1.43.2.17 admin_menu.module
--- admin_menu.module	31 Jan 2009 08:29:25 -0000	1.43.2.17
+++ admin_menu.module	16 Feb 2009 19:21:33 -0000
@@ -136,15 +136,28 @@ function admin_menu_footer($main = 0) {
     return;
   }
 
+  global $user, $language;
+  $cid = 'links:admin_menu:tree-data:' . $user->uid . ':' . $language->language;
+
   // Check for the flag indicating that we need to rebuild.
   if (variable_get('admin_menu_rebuild_links', FALSE)) {
     module_load_include('inc', 'admin_menu');
     _admin_menu_rebuild_links();
     variable_del('admin_menu_rebuild_links');
   }
+  else {
+    $cache = cache_get($cid, 'cache_menu');
+    if ($cache && isset($cache->data)) {
+      $tree = $cache->data;
+    }
+  }
+  if (!isset($tree)) {
+    $tree = admin_menu_tree_output(menu_tree_all_data('admin_menu'));
+    cache_set($cid, $tree, 'cache_menu');
+  }
 
   $content  = '<div id="admin-menu">';
-  $content .= admin_menu_tree_output(menu_tree_all_data('admin_menu'));
+  $content .= $tree;
   $content .= '</div>';
   return $content;
 }
