Index: wp-admin/includes/plugin.php
===================================================================
--- wp-admin/includes/plugin.php	(revision 17843)
+++ wp-admin/includes/plugin.php	(working copy)
@@ -853,7 +853,8 @@ function uninstall_plugin($plugin) {
  * The function which is hooked in to handle the output of the page must check
  * that the user has the required capability as well.
  *
- * @param string $page_title The text to be displayed in the title tags of the page when the menu is selected
+ * @param mixed $page_title_or_params The text to be displayed in the title tags of the page when the menu is selected
+ *                                    OR, an array of this and all subsequent parameters.
  * @param string $menu_title The text to be used for the menu
  * @param string $capability The capability required for this menu to be displayed to the user.
  * @param string $menu_slug The slug name to refer to this menu by (should be unique for this menu)
@@ -863,9 +864,15 @@ function uninstall_plugin($plugin) {
  *
  * @return string The resulting page's hook_suffix
  */
-function add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function = '', $icon_url = '', $position = NULL ) {
+function add_menu_page( $page_title_or_params, $menu_title = NULL, $capability = NULL, $menu_slug = NULL, $function = '', $icon_url = '', $position = NULL ) {
 	global $menu, $admin_page_hooks, $_registered_pages, $_parent_pages;
 
+	if ( is_array( $page_title_or_params ) ) {
+		extract( shortcode_atts( array( 'page_title' => NULL, 'menu_title' => NULL, 'capability' => NULL, 'menu_slug' => NULL, 'function' => '', 'icon_url' => '', 'position' => NULL ), $page_title_or_params ) );
+	} else {
+		$page_title = $page_title_or_params;
+	}
+
 	$menu_slug = plugin_basename( $menu_slug );
 
 	$admin_page_hooks[$menu_slug] = sanitize_title( $menu_title );
@@ -913,7 +920,7 @@ function add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $func
  *
  * @return string The resulting page's hook_suffix
  */
-function add_object_page( $page_title, $menu_title, $capability, $menu_slug, $function = '', $icon_url = '') {
+function add_object_page( $page_title, $menu_title = NULL, $capability = NULL, $menu_slug = NULL, $function = '', $icon_url = '') {
 	global $_wp_last_object_menu;
 
 	$_wp_last_object_menu++;
@@ -939,7 +946,7 @@ function add_object_page( $page_title, $menu_title, $capability, $menu_slug, $fu
  *
  * @return string The resulting page's hook_suffix
  */
-function add_utility_page( $page_title, $menu_title, $capability, $menu_slug, $function = '', $icon_url = '') {
+function add_utility_page( $page_title, $menu_title = NULL, $capability = NULL, $menu_slug = NULL, $function = '', $icon_url = '') {
 	global $_wp_last_utility_menu;
 
 	$_wp_last_utility_menu++;
@@ -956,8 +963,9 @@ function add_utility_page( $page_title, $menu_title, $capability, $menu_slug, $f
  * The function which is hooked in to handle the output of the page must check
  * that the user has the required capability as well.
  *
- * @param string $parent_slug The slug name for the parent menu (or the file name of a standard WordPress admin page)
- * @param string $page_title The text to be displayed in the title tags of the page when the menu is selected
+ * @param string $parent_slug The slug name for the parent menu (or the file name of a standard WordPress admin page),
+ * @param mixed $page_title_or_params The text to be displayed in the title tags of the page when the menu is selected
+ *                                    OR, an array of this and all subsequent parameters.
  * @param string $menu_title The text to be used for the menu
  * @param string $capability The capability required for this menu to be displayed to the user.
  * @param string $menu_slug The slug name to refer to this menu by (should be unique for this menu)
@@ -965,7 +973,7 @@ function add_utility_page( $page_title, $menu_title, $capability, $menu_slug, $f
  *
  * @return string The resulting page's hook_suffix
  */
-function add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function = '' ) {
+function add_submenu_page( $parent_slug, $page_title_or_params, $menu_title = NULL, $capability = NULL, $menu_slug = NULL, $function = '' ) {
 	global $submenu;
 	global $menu;
 	global $_wp_real_parent_file;
@@ -973,6 +981,12 @@ function add_submenu_page( $parent_slug, $page_title, $menu_title, $capability,
 	global $_registered_pages;
 	global $_parent_pages;
 
+	if ( is_array( $page_title_or_params ) ) {
+		extract( shortcode_atts( array( 'page_title' => NULL, 'menu_title' => NULL, 'capability' => NULL, 'menu_slug' => NULL, 'function' => '' ), $page_title_or_params ) );
+	} else {
+		$page_title = $page_title_or_params;
+	}
+
 	$menu_slug = plugin_basename( $menu_slug );
 	$parent_slug = plugin_basename( $parent_slug);
 
@@ -1029,7 +1043,7 @@ function add_submenu_page( $parent_slug, $page_title, $menu_title, $capability,
  *
  * @return string The resulting page's hook_suffix
  */
-function add_management_page( $page_title, $menu_title, $capability, $menu_slug, $function = '' ) {
+function add_management_page( $page_title, $menu_title = NULL, $capability = NULL, $menu_slug = NULL, $function = '' ) {
 	return add_submenu_page( 'tools.php', $page_title, $menu_title, $capability, $menu_slug, $function );
 }
 
@@ -1050,7 +1064,7 @@ function add_management_page( $page_title, $menu_title, $capability, $menu_slug,
  *
  * @return string The resulting page's hook_suffix
  */
-function add_options_page( $page_title, $menu_title, $capability, $menu_slug, $function = '' ) {
+function add_options_page( $page_title, $menu_title = NULL, $capability = NULL, $menu_slug = NULL, $function = '' ) {
 	return add_submenu_page( 'options-general.php', $page_title, $menu_title, $capability, $menu_slug, $function );
 }
 
@@ -1071,7 +1085,7 @@ function add_options_page( $page_title, $menu_title, $capability, $menu_slug, $f
  *
  * @return string The resulting page's hook_suffix
  */
-function add_theme_page( $page_title, $menu_title, $capability, $menu_slug, $function = '' ) {
+function add_theme_page( $page_title, $menu_title = NULL, $capability = NULL, $menu_slug = NULL, $function = '' ) {
 	return add_submenu_page( 'themes.php', $page_title, $menu_title, $capability, $menu_slug, $function );
 }
 
@@ -1092,7 +1106,7 @@ function add_theme_page( $page_title, $menu_title, $capability, $menu_slug, $fun
  *
  * @return string The resulting page's hook_suffix
  */
-function add_plugins_page( $page_title, $menu_title, $capability, $menu_slug, $function = '' ) {
+function add_plugins_page( $page_title, $menu_title = NULL, $capability = NULL, $menu_slug = NULL, $function = '' ) {
 	return add_submenu_page( 'plugins.php', $page_title, $menu_title, $capability, $menu_slug, $function );
 }
 
@@ -1113,7 +1127,7 @@ function add_plugins_page( $page_title, $menu_title, $capability, $menu_slug, $f
  *
  * @return string The resulting page's hook_suffix
  */
-function add_users_page( $page_title, $menu_title, $capability, $menu_slug, $function = '' ) {
+function add_users_page( $page_title, $menu_title = NULL, $capability = NULL, $menu_slug = NULL, $function = '' ) {
 	if ( current_user_can('edit_users') )
 		$parent = 'users.php';
 	else
@@ -1137,7 +1151,7 @@ function add_users_page( $page_title, $menu_title, $capability, $menu_slug, $fun
  *
  * @return string The resulting page's hook_suffix
  */
-function add_dashboard_page( $page_title, $menu_title, $capability, $menu_slug, $function = '' ) {
+function add_dashboard_page( $page_title, $menu_title = NULL, $capability = NULL, $menu_slug = NULL, $function = '' ) {
 	return add_submenu_page( 'index.php', $page_title, $menu_title, $capability, $menu_slug, $function );
 }
 
@@ -1158,7 +1172,7 @@ function add_dashboard_page( $page_title, $menu_title, $capability, $menu_slug,
  *
  * @return string The resulting page's hook_suffix
  */
-function add_posts_page( $page_title, $menu_title, $capability, $menu_slug, $function = '' ) {
+function add_posts_page( $page_title, $menu_title = NULL, $capability = NULL, $menu_slug = NULL, $function = '' ) {
 	return add_submenu_page( 'edit.php', $page_title, $menu_title, $capability, $menu_slug, $function );
 }
 
@@ -1179,7 +1193,7 @@ function add_posts_page( $page_title, $menu_title, $capability, $menu_slug, $fun
  *
  * @return string The resulting page's hook_suffix
  */
-function add_media_page( $page_title, $menu_title, $capability, $menu_slug, $function = '' ) {
+function add_media_page( $page_title, $menu_title = NULL, $capability = NULL, $menu_slug = NULL, $function = '' ) {
 	return add_submenu_page( 'upload.php', $page_title, $menu_title, $capability, $menu_slug, $function );
 }
 
@@ -1200,7 +1214,7 @@ function add_media_page( $page_title, $menu_title, $capability, $menu_slug, $fun
  *
  * @return string The resulting page's hook_suffix
  */
-function add_links_page( $page_title, $menu_title, $capability, $menu_slug, $function = '' ) {
+function add_links_page( $page_title, $menu_title = NULL, $capability = NULL, $menu_slug = NULL, $function = '' ) {
 	return add_submenu_page( 'link-manager.php', $page_title, $menu_title, $capability, $menu_slug, $function );
 }
 
@@ -1221,7 +1235,7 @@ function add_links_page( $page_title, $menu_title, $capability, $menu_slug, $fun
  *
  * @return string The resulting page's hook_suffix
 */
-function add_pages_page( $page_title, $menu_title, $capability, $menu_slug, $function = '' ) {
+function add_pages_page( $page_title, $menu_title = NULL, $capability = NULL, $menu_slug = NULL, $function = '' ) {
 	return add_submenu_page( 'edit.php?post_type=page', $page_title, $menu_title, $capability, $menu_slug, $function );
 }
 
@@ -1242,7 +1256,7 @@ function add_pages_page( $page_title, $menu_title, $capability, $menu_slug, $fun
  *
  * @return string The resulting page's hook_suffix
 */
-function add_comments_page( $page_title, $menu_title, $capability, $menu_slug, $function = '' ) {
+function add_comments_page( $page_title, $menu_title = NULL, $capability = NULL, $menu_slug = NULL, $function = '' ) {
 	return add_submenu_page( 'edit-comments.php', $page_title, $menu_title, $capability, $menu_slug, $function );
 }
 
