Index: wp-includes/nav-menu-template.php
===================================================================
--- wp-includes/nav-menu-template.php	(revision 27052)
+++ wp-includes/nav-menu-template.php	(working copy)
@@ -250,8 +250,16 @@
 	}
 
 	// If the menu exists, get its items.
-	if ( $menu && ! is_wp_error($menu) && !isset($menu_items) )
+	if ( $menu && ! is_wp_error( $menu ) && ! isset( $menu_items ) ) {
+		// Check if we have a cache of this menus items first
+		$menu_items = wp_cache_get( 'wp_nav_menu_' . $args->theme_location );
+
+		// If no cache exists for this menu, fetch it and set the cache in case of repeat use
+		if ( ! $menu_items ) {
-		$menu_items = wp_get_nav_menu_items( $menu->term_id, array( 'update_post_term_cache' => false ) );
+			$menu_items = wp_get_nav_menu_items( $menu->term_id, array( 'update_post_term_cache' => false ) );
+			wp_cache_set( 'wp_nav_menu_' . $args->theme_location, $menu_items );
+		}
+	}
 
 	/*
 	 * If no menu was found:
