Index: wp-admin/css/wp-admin.css
===================================================================
--- wp-admin/css/wp-admin.css	(revision 23658)
+++ wp-admin/css/wp-admin.css	(working copy)
@@ -6001,6 +6001,10 @@
 	overflow: auto;
 }
 
+.wp-full-overlay-sidebar-content .accordion-section:first-child {
+	border-top: 1px solid #fff;
+}
+
 /* Close Link */
 .wp-full-overlay .close-full-overlay {
 	text-decoration: none;
@@ -7166,6 +7170,29 @@
 	display: block;
 }
 
+#nav-menu-meta ul.outer-border {
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+}
+
+.accordion-section ul.category-tabs,
+.accordion-section ul.add-menu-item-tabs,
+.accordion-section ul.wp-tab-bar {
+	margin: 0;
+}
+
+.accordion-section .categorychecklist {
+	margin: 13px 0;
+}
+
+#nav-menu-meta .accordion-section-content {
+	padding: 18px 13px;
+}
+
+#nav-menu-meta .button-controls {
+	margin-bottom: 0;
+}
+
 #nav-menus-frame {
 	margin-left: 300px;
 	margin-top: 28px;
@@ -7295,7 +7322,7 @@
 }
 
 .nav-menus-php #post-body {
-	padding: 0 10px;
+	padding: 0 10px 10px;
 	border-width: 1px 0;
 	border-style: solid;
 }
@@ -7365,15 +7392,38 @@
 }
 
 /* Add Menu Item Boxes */
-.postbox .howto input {
+.postbox .howto input,
+.accordion-container .howto input {
 	width: 180px;
 	float: right;
 }
 
+.accordion-container .outer-border {
+	margin-top: 0;
+}
+
+.accordion-container .accordion-section:first-child {
+	-webkit-border-top-right-radius: 3px;
+	-webkit-border-top-left-radius: 3px;
+	border-top-right-radius: 3px;
+	border-top-left-radius: 3px;
+}
+
+.accordion-container .accordion-section:last-child {
+	-webkit-border-bottom-right-radius: 3px;
+	-webkit-border-bottom-left-radius: 3px;
+	border-bottom-right-radius: 3px;
+	border-bottom-left-radius: 3px;
+}
+
 .customlinkdiv .howto input {
-	width: 200px;
+	width: 180px;
 }
 
+.customlinkdiv p {
+	margin-top: 0
+}
+
 #nav-menu-theme-locations .howto select {
 	width: 100%;
 }
@@ -8782,6 +8832,10 @@
 	margin: 0;
 }
 
+.accordion-section:first-child {
+	border-top: 1px solid #dfdfdf;
+}
+
 .accordion-section:last-child {
 	box-shadow: 0 1px 0 0px #fff;
 }
@@ -8789,6 +8843,8 @@
 .accordion-section.open .accordion-section-content {
 	display: block;
 	background: #fdfdfd;
+	border-left: 1px solid #dfdfdf;
+	border-right: 1px solid #dfdfdf;
 }
 
 .accordion-section.open:hover {
@@ -8805,6 +8861,8 @@
 	margin: 0;
 	padding: 15px 20px;
 	position: relative;
+	border-left: 1px solid #dfdfdf;
+	border-right: 1px solid #dfdfdf;
 
 	cursor: pointer;
 
@@ -8878,6 +8936,8 @@
 	background-image:    -moz-linear-gradient(bottom, #6d6d6d, #808080);
 	background-image:      -o-linear-gradient(bottom, #6d6d6d, #808080);
 	background-image: linear-gradient(to top, #6d6d6d, #808080);
+	border-left: 1px solid #808080;
+	border-right: 1px solid #808080;
 }
 
 .control-section.accordion-section:hover,
Index: wp-admin/includes/nav-menu.php
===================================================================
--- wp-admin/includes/nav-menu.php	(revision 23658)
+++ wp-admin/includes/nav-menu.php	(working copy)
@@ -385,14 +385,10 @@
  * @since 3.0.0
  **/
 function wp_nav_menu_setup() {
-	// Register meta boxes
 	wp_nav_menu_post_type_meta_boxes();
-	add_meta_box( 'add-custom-links', __( 'Add Links' ), 'wp_nav_menu_item_link_meta_box', 'nav-menus', 'side', 'default' );
+	wp_nav_menu_item_link_meta_box();
 	wp_nav_menu_taxonomy_meta_boxes();
 
-	// Register advanced menu items (columns)
-	add_filter( 'manage_nav-menus_columns', 'wp_nav_menu_manage_columns');
-
 	// If first time editing, disable advanced items by default.
 	if( false === get_user_option( 'managenav-menuscolumnshidden' ) ) {
 		$user = wp_get_current_user();
@@ -438,7 +434,8 @@
  * @since 3.0.0
  */
 function wp_nav_menu_post_type_meta_boxes() {
-	$post_types = get_post_types( array( 'show_in_nav_menus' => true ), 'object' );
+	// Reverse array to show pages as first item
+	$post_types = array_reverse( get_post_types( array( 'show_in_nav_menus' => true ), 'object' ) );
 
 	if ( ! $post_types )
 		return;
@@ -447,7 +444,7 @@
 		$post_type = apply_filters( 'nav_menu_meta_box_object', $post_type );
 		if ( $post_type ) {
 			$id = $post_type->name;
-			add_meta_box( "add-{$id}", $post_type->labels->name, 'wp_nav_menu_item_post_type_meta_box', 'nav-menus', 'side', 'default', $post_type );
+			wp_nav_menu_item_post_type_meta_box( $post_type );
 		}
 	}
 }
@@ -467,7 +464,7 @@
 		$tax = apply_filters( 'nav_menu_meta_box_object', $tax );
 		if ( $tax ) {
 			$id = $tax->name;
-			add_meta_box( "add-{$id}", $tax->labels->name, 'wp_nav_menu_item_taxonomy_meta_box', 'nav-menus', 'side', 'default', $tax );
+			wp_nav_menu_item_taxonomy_meta_box( $tax );
 		}
 	}
 }
@@ -564,7 +561,9 @@
 	);
 
 	?>
-	<div class="customlinkdiv" id="customlinkdiv">
+	<li class="control-section accordion-section" id="accordion-section-title_tagline">
+		<h3 title="" tabindex="0" class="accordion-section-title"><?php _e( 'Links' ); ?></h3>
+		<div class="customlinkdiv accordion-section-content" id="customlinkdiv">
 
 			<input type="hidden" value="custom" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-type]" />
 			<p id="menu-item-url-wrap">
@@ -577,18 +576,19 @@
 			<p id="menu-item-name-wrap">
 				<label class="howto" for="custom-menu-item-name">
 					<span><?php _e( 'Link Text' ); ?></span>
-					<input id="custom-menu-item-name" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-title]" type="text" class="regular-text menu-item-textbox input-with-default-title" title="<?php esc_attr_e('Menu Item'); ?>" />
+					<input id="custom-menu-item-name" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-title]" type="text" class="regular-text menu-item-textbox input-with-default-title" title="<?php esc_attr_e( 'Menu Item' ); ?>" />
 				</label>
 			</p>
 
-		<p class="button-controls">
-			<span class="add-to-menu">
-				<input type="submit"<?php wp_nav_menu_disabled_check( $nav_menu_selected_id ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e('Add to Menu'); ?>" name="add-custom-menu-item" id="submit-customlinkdiv" />
-				<span class="spinner"></span>
-			</span>
-		</p>
+			<p class="button-controls">
+				<span class="add-to-menu">
+					<input type="submit"<?php wp_nav_menu_disabled_check( $nav_menu_selected_id ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( 'Add to Menu' ); ?>" name="add-custom-menu-item" id="submit-customlinkdiv" />
+					<span class="spinner"></span>
+				</span>
+			</p>
 
-	</div><!-- /.customlinkdiv -->
+		</div><!-- /.customlinkdiv -->
+	</li>
 	<?php
 }
 
@@ -600,10 +600,10 @@
  * @param string $object Not used.
  * @param string $post_type The post type object.
  */
-function wp_nav_menu_item_post_type_meta_box( $object, $post_type ) {
+function wp_nav_menu_item_post_type_meta_box( $post_type ) {
 	global $_nav_menu_placeholder, $nav_menu_selected_id;
 
-	$post_type_name = $post_type['args']->name;
+	$post_type_name = $post_type->name;
 
 	// paginate browsing for large numbers of post objects
 	$per_page = 50;
@@ -621,18 +621,24 @@
 		'update_post_meta_cache' => false
 	);
 
-	if ( isset( $post_type['args']->_default_query ) )
-		$args = array_merge($args, (array) $post_type['args']->_default_query );
+	if ( isset( $post_type->_default_query ) )
+		$args = array_merge( $args, (array) $post_type->_default_query );
 
 	// @todo transient caching of these results with proper invalidation on updating of a post of this type
 	$get_posts = new WP_Query;
 	$posts = $get_posts->query( $args );
-	if ( ! $get_posts->post_count ) {
-		echo '<p>' . __( 'No items.' ) . '</p>';
-		return;
+	if ( ! $get_posts->post_count ) { ?>
+
+		<li class="control-section accordion-section" id="accordion-section-title_tagline">
+			<h3 title="" tabindex="0" class="accordion-section-title"><?php echo esc_html( $post_type->labels->name ); ?></h3>
+			<div id="posttype-<?php echo esc_attr( $post_type_name ); ?>" class="posttypediv accordion-section-content">
+				<?php _e( 'No items.' ); ?>
+			</div>
+		</li>
+	<?php return;
 	}
 
-	$post_type_object = get_post_type_object($post_type_name);
+	$post_type_object = get_post_type_object( $post_type_name );
 
 	$num_pages = $get_posts->max_num_pages;
 
@@ -681,132 +687,125 @@
 	);
 
 	?>
-	<div id="posttype-<?php echo $post_type_name; ?>" class="posttypediv">
-		<ul id="posttype-<?php echo $post_type_name; ?>-tabs" class="posttype-tabs add-menu-item-tabs">
-			<li <?php echo ( 'most-recent' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" href="<?php if ( $nav_menu_selected_id ) echo esc_url(add_query_arg($post_type_name . '-tab', 'most-recent', remove_query_arg($removed_args))); ?>#tabs-panel-posttype-<?php echo $post_type_name; ?>-most-recent"><?php _e('Most Recent'); ?></a></li>
-			<li <?php echo ( 'all' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" href="<?php if ( $nav_menu_selected_id ) echo esc_url(add_query_arg($post_type_name . '-tab', 'all', remove_query_arg($removed_args))); ?>#<?php echo $post_type_name; ?>-all"><?php _e('View All'); ?></a></li>
-			<li <?php echo ( 'search' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" href="<?php if ( $nav_menu_selected_id ) echo esc_url(add_query_arg($post_type_name . '-tab', 'search', remove_query_arg($removed_args))); ?>#tabs-panel-posttype-<?php echo $post_type_name; ?>-search"><?php _e('Search'); ?></a></li>
-		</ul>
+	<li class="control-section accordion-section" id="accordion-section-title_tagline">
+		<h3 title="" tabindex="0" class="accordion-section-title"><?php echo esc_html( $post_type->labels->name ); ?></h3>
+		<div id="posttype-<?php echo esc_attr( $post_type_name ); ?>" class="posttypediv accordion-section-content">
+ 			<ul id="posttype-<?php echo esc_attr( $post_type_name ); ?>-tabs" class="posttype-tabs add-menu-item-tabs">
+ 				<li <?php echo ( 'most-recent' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link tab-most-recent" data-type="tabs-panel-posttype-<?php echo esc_attr( $post_type_name ); ?>-most-recent" href="<?php if ( $nav_menu_selected_id ) echo esc_url( add_query_arg( $post_type_name . '-tab', 'most-recent', remove_query_arg( $removed_args ) ) ); ?>#tabs-panel-posttype-<?php echo esc_attr( $post_type_name ); ?>-most-recent"><?php _e( 'Most Recent' ); ?></a></li>
+ 				<li <?php echo ( 'all' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" data-type="<?php echo esc_attr( $post_type_name ); ?>-all" href="<?php if ( $nav_menu_selected_id ) echo esc_url( add_query_arg( $post_type_name . '-tab', 'all', remove_query_arg( $removed_args ) ) . '#' . $post_type_name . '-all' ); ?> "><?php _e( 'View All' ); ?></a></li>
+ 				<li <?php echo ( 'search' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" data-type="tabs-panel-posttype-<?php echo esc_attr( $post_type_name ); ?>-search" href="<?php if ( $nav_menu_selected_id ) echo esc_url( add_query_arg( $post_type_name . '-tab', 'search', remove_query_arg( $removed_args ) ) . '#tabs-panel-posttype-' .  $post_type_name . '-search' ); ?>"><?php _e( 'Search' ); ?></a></li>
+  			</ul>
 
-		<div id="tabs-panel-posttype-<?php echo $post_type_name; ?>-most-recent" class="tabs-panel <?php
-			echo ( 'most-recent' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
-		?>">
-			<ul id="<?php echo $post_type_name; ?>checklist-most-recent" class="categorychecklist form-no-clear">
-				<?php
-				$recent_args = array_merge( $args, array( 'orderby' => 'post_date', 'order' => 'DESC', 'posts_per_page' => 15 ) );
-				$most_recent = $get_posts->query( $recent_args );
-				$args['walker'] = $walker;
-				echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $most_recent), 0, (object) $args );
-				?>
-			</ul>
-		</div><!-- /.tabs-panel -->
+ 			<div id="tabs-panel-posttype-<?php echo esc_attr( $post_type_name ); ?>-most-recent" class="tabs-panel <?php
+ 				echo ( 'most-recent' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
+ 			?>">
+ 				<ul id="<?php echo esc_attr( $post_type_name ); ?>-checklist-most-recent" class="categorychecklist form-no-clear">
+ 					<?php
+ 					$recent_args = array_merge( $args, array( 'orderby' => 'post_date', 'order' => 'DESC', 'posts_per_page' => 15 ) );
+ 					$most_recent = $get_posts->query( $recent_args );
+ 					$args['walker'] = $walker;
+ 					echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $most_recent), 0, (object) $args );
+ 					?>
+ 				</ul>
+ 			</div><!-- /.tabs-panel -->
 
-		<div class="tabs-panel <?php
-			echo ( 'search' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
-		?>" id="tabs-panel-posttype-<?php echo $post_type_name; ?>-search">
-			<?php
-			if ( isset( $_REQUEST['quick-search-posttype-' . $post_type_name] ) ) {
-				$searched = esc_attr( $_REQUEST['quick-search-posttype-' . $post_type_name] );
-				$search_results = get_posts( array( 's' => $searched, 'post_type' => $post_type_name, 'fields' => 'all', 'order' => 'DESC', ) );
-			} else {
-				$searched = '';
-				$search_results = array();
-			}
-			?>
-			<p class="quick-search-wrap">
-				<input type="search" class="quick-search input-with-default-title" title="<?php esc_attr_e('Search'); ?>" value="<?php echo $searched; ?>" name="quick-search-posttype-<?php echo $post_type_name; ?>" />
-				<span class="spinner"></span>
-				<?php submit_button( __( 'Search' ), 'button-small quick-search-submit button-secondary hide-if-js', 'submit', false, array( 'id' => 'submit-quick-search-posttype-' . $post_type_name ) ); ?>
-			</p>
+ 			<div class="tabs-panel <?php
+ 				echo ( 'search' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
+ 			?>" id="tabs-panel-posttype-<?php echo esc_attr( $post_type_name ); ?>-search">
+  				<?php
+ 				if ( isset( $_REQUEST['quick-search-posttype-' . $post_type_name] ) ) {
+ 					$searched = esc_attr( $_REQUEST['quick-search-posttype-' . $post_type_name] );
+ 					$search_results = get_posts( array( 's' => $searched, 'post_type' => $post_type_name, 'fields' => 'all', 'order' => 'DESC', ) );
+ 				} else {
+ 					$searched = '';
+ 					$search_results = array();
+ 				}
+  				?>
+ 				<p class="quick-search-wrap">
+ 					<input type="search" class="quick-search input-with-default-title" title="<?php esc_attr_e( 'Search' ); ?>" value="<?php echo esc_attr( $searched ); ?>" name="quick-search-posttype-<?php echo esc_attr( $post_type_name ); ?>" />
+ 					<span class="spinner"></span>
+ 					<?php submit_button( __( 'Search' ), 'button-small quick-search-submit button-secondary hide-if-js', 'submit', false, array( 'id' => 'submit-quick-search-posttype-' . $post_type_name ) ); ?>
+ 				</p>
 
-			<ul id="<?php echo $post_type_name; ?>-search-checklist" data-wp-lists="list:<?php echo $post_type_name?>" class="categorychecklist form-no-clear">
-			<?php if ( ! empty( $search_results ) && ! is_wp_error( $search_results ) ) : ?>
-				<?php
-				$args['walker'] = $walker;
-				echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args );
-				?>
-			<?php elseif ( is_wp_error( $search_results ) ) : ?>
-				<li><?php echo $search_results->get_error_message(); ?></li>
-			<?php elseif ( ! empty( $searched ) ) : ?>
-				<li><?php _e('No results found.'); ?></li>
-			<?php endif; ?>
-			</ul>
-		</div><!-- /.tabs-panel -->
+ 				<ul id="<?php echo esc_attr( $post_type_name ); ?>-search-checklist" data-wp-lists="list:<?php echo esc_attr( $post_type_name ); ?>" class="categorychecklist form-no-clear">
+ 				<?php if ( ! empty( $search_results ) && ! is_wp_error( $search_results ) ) : ?>
+ 					<?php
+ 					$args['walker'] = $walker;
+ 					echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args );
+ 					?>
+ 				<?php elseif ( is_wp_error( $search_results ) ) : ?>
+ 					<li><?php echo $search_results->get_error_message(); ?></li>
+ 				<?php elseif ( ! empty( $searched ) ) : ?>
+ 					<li><?php _e('No results found.'); ?></li>
+ 				<?php endif; ?>
+ 				</ul>
+ 			</div><!-- /.tabs-panel -->
 
-		<div id="<?php echo $post_type_name; ?>-all" class="tabs-panel tabs-panel-view-all <?php
-			echo ( 'all' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
-		?>">
-			<?php if ( ! empty( $page_links ) ) : ?>
-				<div class="add-menu-item-pagelinks">
-					<?php echo $page_links; ?>
-				</div>
-			<?php endif; ?>
-			<ul id="<?php echo $post_type_name; ?>checklist" data-wp-lists="list:<?php echo $post_type_name?>" class="categorychecklist form-no-clear">
-				<?php
-				$args['walker'] = $walker;
+			<div id="<?php echo esc_attr( $post_type_name ); ?>-all" class="tabs-panel tabs-panel-view-all <?php
+ 				echo ( 'all' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
+ 			?>">
+ 				<?php if ( ! empty( $page_links ) ) : ?>
+ 					<div class="add-menu-item-pagelinks">
+ 						<?php echo $page_links; ?>
+ 					</div>
+ 				<?php endif; ?>
+ 				<ul id="<?php echo esc_attr( $post_type_name ); ?>checklist" data-wp-lists="list:<?php echo esc_attr( $post_type_name ); ?>" class="categorychecklist form-no-clear">
+ 					<?php
+ 					$args['walker'] = $walker;
 
-				// if we're dealing with pages, let's put a checkbox for the front page at the top of the list
-				if ( 'page' == $post_type_name ) {
-					$front_page = 'page' == get_option('show_on_front') ? (int) get_option( 'page_on_front' ) : 0;
-					if ( ! empty( $front_page ) ) {
-						$front_page_obj = get_post( $front_page );
-						$front_page_obj->front_or_home = true;
-						array_unshift( $posts, $front_page_obj );
-					} else {
-						$_nav_menu_placeholder = ( 0 > $_nav_menu_placeholder ) ? intval($_nav_menu_placeholder) - 1 : -1;
-						array_unshift( $posts, (object) array(
-							'front_or_home' => true,
-							'ID' => 0,
-							'object_id' => $_nav_menu_placeholder,
-							'post_content' => '',
-							'post_excerpt' => '',
-							'post_parent' => '',
-							'post_title' => _x('Home', 'nav menu home label'),
-							'post_type' => 'nav_menu_item',
-							'type' => 'custom',
-							'url' => home_url('/'),
-						) );
+ 					// if we're dealing with pages, let's put a checkbox for the front page at the top of the list
+ 					if ( 'page' == $post_type_name ) {
+ 						$front_page = 'page' == get_option( 'show_on_front' ) ? (int) get_option( 'page_on_front' ) : 0;
+ 						if ( ! empty( $front_page ) ) {
+ 							$front_page_obj = get_post( $front_page );
+ 							$front_page_obj->front_or_home = true;
+ 							array_unshift( $posts, $front_page_obj );
+ 						} else {
+ 							$_nav_menu_placeholder = ( 0 > $_nav_menu_placeholder ) ? intval($_nav_menu_placeholder) - 1 : -1;
+ 							array_unshift( $posts, (object) array(
+ 								'front_or_home' => true,
+ 								'ID' => 0,
+ 								'object_id' => $_nav_menu_placeholder,
+ 								'post_content' => '',
+ 								'post_excerpt' => '',
+ 								'post_parent' => '',
+ 								'post_title' => _x( 'Home', 'nav menu home label' ),
+ 								'post_type' => 'nav_menu_item',
+ 								'type' => 'custom',
+ 								'url' => home_url(),
+							) );
+						}
 					}
-				}
 
-				$posts = apply_filters( 'nav_menu_items_'.$post_type_name, $posts, $args, $post_type );
-				$checkbox_items = walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $posts), 0, (object) $args );
+  					$posts = apply_filters( 'nav_menu_items_' . $post_type_name, $posts, $args, $post_type );
+					$checkbox_items = walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $posts), 0, (object) $args );
 
-				if ( 'all' == $current_tab && ! empty( $_REQUEST['selectall'] ) ) {
-					$checkbox_items = preg_replace('/(type=(.)checkbox(\2))/', '$1 checked=$2checked$2', $checkbox_items);
+					if ( 'all' == $current_tab && ! empty( $_REQUEST['selectall'] ) )
+						$checkbox_items = preg_replace( '/(type=(.)checkbox(\2))/', '$1 checked=$2checked$2', $checkbox_items );
 
-				}
+					echo $checkbox_items;
+					?>
+				</ul>
+				<?php if ( ! empty( $page_links ) ) : ?>
+					<div class="add-menu-item-pagelinks">
+						<?php echo $page_links; ?>
+					</div>
+				<?php endif; ?>
+			</div><!-- /.tabs-panel -->
 
-				echo $checkbox_items;
-				?>
-			</ul>
-			<?php if ( ! empty( $page_links ) ) : ?>
-				<div class="add-menu-item-pagelinks">
-					<?php echo $page_links; ?>
-				</div>
-			<?php endif; ?>
-		</div><!-- /.tabs-panel -->
+			<p class="button-controls">
+				<span class="list-controls">
+					<a href="<?php echo esc_url( add_query_arg( array( $post_type_name . '-tab' => 'all', 'selectall' => 1 ), remove_query_arg( $removed_args ) ) . '#posttype-' . $post_type_name ); ?>" class="select-all"><?php _e( 'Select All' ); ?></a>
+				</span>
 
-		<p class="button-controls">
-			<span class="list-controls">
-				<a href="<?php
-					echo esc_url( add_query_arg(
-						array(
-							$post_type_name . '-tab' => 'all',
-							'selectall' => 1,
-						),
-						remove_query_arg( $removed_args )
-					));
-				?>#posttype-<?php echo $post_type_name; ?>" class="select-all"><?php _e('Select All'); ?></a>
-			</span>
+				<span class="add-to-menu">
+					<input type="submit"<?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( 'Add to Menu' ) ; ?>" name="add-post-type-menu-item" id="submit-posttype-<?php echo esc_attr( $post_type_name ); ?>" />
+					<span class="spinner"></span>
+				</span>
+			</p>
 
-			<span class="add-to-menu">
-				<input type="submit"<?php wp_nav_menu_disabled_check( $nav_menu_selected_id ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( __( 'Add to Menu' ) ); ?>" name="add-post-type-menu-item" id="<?php esc_attr_e( 'submit-posttype-' . $post_type_name ); ?>" />
-				<span class="spinner"></span>
-			</span>
-		</p>
-
-	</div><!-- /.posttypediv -->
+		</div><!-- /.posttypediv -->
+	</li>
 	<?php
 }
 
@@ -818,9 +817,9 @@
  * @param string $object Not used.
  * @param string $taxonomy The taxonomy object.
  */
-function wp_nav_menu_item_taxonomy_meta_box( $object, $taxonomy ) {
+function wp_nav_menu_item_taxonomy_meta_box( $taxonomy ) {
 	global $nav_menu_selected_id;
-	$taxonomy_name = $taxonomy['args']->name;
+	$taxonomy_name = $taxonomy->name;
 
 	// paginate browsing for large numbers of objects
 	$per_page = 50;
@@ -842,9 +841,14 @@
 
 	$terms = get_terms( $taxonomy_name, $args );
 
-	if ( ! $terms || is_wp_error($terms) ) {
-		echo '<p>' . __( 'No items.' ) . '</p>';
-		return;
+	if ( is_wp_error( $terms ) ) { ?>
+		<li class="control-section accordion-section" id="accordion-section-title_tagline">
+			<h3 title="" tabindex="0" class="accordion-section-title"><?php echo esc_html( $taxonomy->labels->name ); ?></h3>
+			<div id="posttype-<?php echo esc_attr( $taxonomy_name ); ?>" class="posttypediv accordion-section-content">
+				<?php _e( 'No items.' ); ?>
+			</div>
+		</li>
+	<?php return;
 	}
 
 	$num_pages = ceil( wp_count_terms( $taxonomy_name , array_merge( $args, array('number' => '', 'offset' => '') ) ) / $per_page );
@@ -891,98 +895,91 @@
 	);
 
 	?>
-	<div id="taxonomy-<?php echo $taxonomy_name; ?>" class="taxonomydiv">
-		<ul id="taxonomy-<?php echo $taxonomy_name; ?>-tabs" class="taxonomy-tabs add-menu-item-tabs">
-			<li <?php echo ( 'most-used' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" href="<?php if ( $nav_menu_selected_id ) echo esc_url(add_query_arg($taxonomy_name . '-tab', 'most-used', remove_query_arg($removed_args))); ?>#tabs-panel-<?php echo $taxonomy_name; ?>-pop"><?php _e('Most Used'); ?></a></li>
-			<li <?php echo ( 'all' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" href="<?php if ( $nav_menu_selected_id ) echo esc_url(add_query_arg($taxonomy_name . '-tab', 'all', remove_query_arg($removed_args))); ?>#tabs-panel-<?php echo $taxonomy_name; ?>-all"><?php _e('View All'); ?></a></li>
-			<li <?php echo ( 'search' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" href="<?php if ( $nav_menu_selected_id ) echo esc_url(add_query_arg($taxonomy_name . '-tab', 'search', remove_query_arg($removed_args))); ?>#tabs-panel-search-taxonomy-<?php echo $taxonomy_name; ?>"><?php _e('Search'); ?></a></li>
-		</ul>
+	<li class="control-section accordion-section" id="accordion-section-title_tagline">
+ 		<h3 title="" tabindex="0" class="accordion-section-title"><?php echo esc_html( $taxonomy->labels->name ); ?></h3>
+ 		<div id="taxonomy-<?php echo esc_attr( $taxonomy_name ); ?>" class="taxonomydiv accordion-section-content">
+ 			<ul id="taxonomy-<?php echo esc_attr( $taxonomy_name ); ?>-tabs" class="taxonomy-tabs add-menu-item-tabs">
+ 				<li <?php echo ( 'most-used' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" data-type="tabs-panel-<?php echo esc_attr( $taxonomy_name ); ?>-pop" href="<?php if ( $nav_menu_selected_id ) echo esc_url( add_query_arg($taxonomy_name . '-tab', 'most-used', remove_query_arg( $removed_args ) ) . '#tabs-panel-' . $taxonomy_name . '-pop' ); ?>"><?php _e( 'Most Used' ); ?></a></li>
+ 				<li <?php echo ( 'all' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" data-type="tabs-panel-<?php echo esc_attr( $taxonomy_name ); ?>-all" href="<?php if ( $nav_menu_selected_id ) echo esc_url( add_query_arg( $taxonomy_name . '-tab', 'all', remove_query_arg( $removed_args ) ) . '#tabs-panel-' . $taxonomy_name . '-all' ); ?>"><?php _e( 'View All' ); ?></a></li>
+ 				<li <?php echo ( 'search' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" data-type="tabs-panel-search-taxonomy-<?php echo esc_attr( $taxonomy_name ); ?>" href="<?php if ( $nav_menu_selected_id ) echo esc_url( add_query_arg( $taxonomy_name . '-tab', 'search', remove_query_arg( $removed_args ) ) ); ?>#tabs-panel-search-taxonomy-<?php echo esc_attr( $taxonomy_name ); ?>"><?php _e( 'Search' ); ?></a></li>
+  			</ul>
 
-		<div id="tabs-panel-<?php echo $taxonomy_name; ?>-pop" class="tabs-panel <?php
-			echo ( 'most-used' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
-		?>">
-			<ul id="<?php echo $taxonomy_name; ?>checklist-pop" class="categorychecklist form-no-clear" >
-				<?php
-				$popular_terms = get_terms( $taxonomy_name, array( 'orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false ) );
-				$args['walker'] = $walker;
-				echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $popular_terms), 0, (object) $args );
-				?>
-			</ul>
-		</div><!-- /.tabs-panel -->
+ 			<div id="tabs-panel-<?php echo esc_attr( $taxonomy_name ); ?>-pop" class="tabs-panel <?php
+ 				echo ( 'most-used' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
+ 			?>">
+ 				<ul id="<?php echo esc_attr( $taxonomy_name ); ?>checklist-pop" class="categorychecklist form-no-clear" >
+ 					<?php
+ 					$popular_terms = get_terms( $taxonomy_name, array( 'orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false ) );
+ 					$args['walker'] = $walker;
+ 					echo walk_nav_menu_tree( array_map( 'wp_setup_nav_menu_item', $popular_terms ), 0, (object) $args );
+ 					?>
+ 				</ul>
+ 			</div><!-- /.tabs-panel -->
 
-		<div id="tabs-panel-<?php echo $taxonomy_name; ?>-all" class="tabs-panel tabs-panel-view-all <?php
-			echo ( 'all' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
-		?>">
-			<?php if ( ! empty( $page_links ) ) : ?>
-				<div class="add-menu-item-pagelinks">
-					<?php echo $page_links; ?>
-				</div>
-			<?php endif; ?>
-			<ul id="<?php echo $taxonomy_name; ?>checklist" data-wp-lists="list:<?php echo $taxonomy_name?>" class="categorychecklist form-no-clear">
-				<?php
-				$args['walker'] = $walker;
-				echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $terms), 0, (object) $args );
-				?>
-			</ul>
-			<?php if ( ! empty( $page_links ) ) : ?>
-				<div class="add-menu-item-pagelinks">
-					<?php echo $page_links; ?>
-				</div>
-			<?php endif; ?>
-		</div><!-- /.tabs-panel -->
+ 			<div id="tabs-panel-<?php echo esc_attr( $taxonomy_name ); ?>-all" class="tabs-panel tabs-panel-view-all <?php
+ 				echo ( 'all' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
+ 			?>">
+ 				<?php if ( ! empty( $page_links ) ) : ?>
+ 					<div class="add-menu-item-pagelinks">
+ 						<?php echo $page_links; ?>
+ 					</div>
+ 				<?php endif; ?>
+ 				<ul id="<?php echo esc_attr( $taxonomy_name ); ?>checklist" data-wp-lists="list:<?php echo esc_attr( $taxonomy_name ); ?>" class="categorychecklist form-no-clear">
+ 					<?php
+ 					$args['walker'] = $walker;
+ 					echo walk_nav_menu_tree( array_map( 'wp_setup_nav_menu_item', $terms ), 0, (object) $args );
+ 					?>
+ 				</ul>
+ 				<?php if ( ! empty( $page_links ) ) : ?>
+ 					<div class="add-menu-item-pagelinks">
+ 						<?php echo $page_links; ?>
+ 					</div>
+ 				<?php endif; ?>
+ 			</div><!-- /.tabs-panel -->
 
-		<div class="tabs-panel <?php
-			echo ( 'search' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
-		?>" id="tabs-panel-search-taxonomy-<?php echo $taxonomy_name; ?>">
-			<?php
-			if ( isset( $_REQUEST['quick-search-taxonomy-' . $taxonomy_name] ) ) {
-				$searched = esc_attr( $_REQUEST['quick-search-taxonomy-' . $taxonomy_name] );
-				$search_results = get_terms( $taxonomy_name, array( 'name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false ) );
-			} else {
-				$searched = '';
-				$search_results = array();
-			}
-			?>
-			<p class="quick-search-wrap">
-				<input type="search" class="quick-search input-with-default-title" title="<?php esc_attr_e('Search'); ?>" value="<?php echo $searched; ?>" name="quick-search-taxonomy-<?php echo $taxonomy_name; ?>" />
-				<span class="spinner"></span>
-				<?php submit_button( __( 'Search' ), 'button-small quick-search-submit button-secondary hide-if-js', 'submit', false, array( 'id' => 'submit-quick-search-taxonomy-' . $taxonomy_name ) ); ?>
-			</p>
+ 			<div class="tabs-panel <?php
+ 				echo ( 'search' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
+ 			?>" id="tabs-panel-search-taxonomy-<?php echo esc_attr( $taxonomy_name ); ?>">
+  				<?php
+ 				if ( isset( $_REQUEST['quick-search-taxonomy-' . $taxonomy_name] ) ) {
+ 					$searched = esc_attr( $_REQUEST['quick-search-taxonomy-' . $taxonomy_name] );
+ 					$search_results = get_terms( $taxonomy_name, array( 'name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false ) );
+ 				} else {
+ 					$searched = '';
+ 					$search_results = array();
+ 				}
+  				?>
+ 				<p class="quick-search-wrap">
+ 					<input type="search" class="quick-search input-with-default-title" title="<?php esc_attr_e('Search'); ?>" value="<?php echo esc_attr( $searched ); ?>" name="quick-search-taxonomy-<?php echo esc_attr( $taxonomy_name ); ?>" />
+ 					<span class="spinner"></span>
+ 					<?php submit_button( __( 'Search' ), 'button-small quick-search-submit button-secondary hide-if-js', 'submit', false, array( 'id' => 'submit-quick-search-taxonomy-' . $taxonomy_name ) ); ?>
+ 				</p>
 
-			<ul id="<?php echo $taxonomy_name; ?>-search-checklist" data-wp-lists="list:<?php echo $taxonomy_name?>" class="categorychecklist form-no-clear">
-			<?php if ( ! empty( $search_results ) && ! is_wp_error( $search_results ) ) : ?>
-				<?php
-				$args['walker'] = $walker;
-				echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args );
-				?>
-			<?php elseif ( is_wp_error( $search_results ) ) : ?>
-				<li><?php echo $search_results->get_error_message(); ?></li>
-			<?php elseif ( ! empty( $searched ) ) : ?>
-				<li><?php _e('No results found.'); ?></li>
-			<?php endif; ?>
-			</ul>
-		</div><!-- /.tabs-panel -->
+ 				<ul id="<?php echo esc_attr( $taxonomy_name ); ?>-search-checklist" data-wp-lists="list:<?php echo esc_attr( $taxonomy_name ); ?>" class="categorychecklist form-no-clear">
+ 				<?php if ( ! empty( $search_results ) && ! is_wp_error( $search_results ) ) : ?>
+ 					<?php
+ 					$args['walker'] = $walker;
+ 					echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args );
+ 					?>
+ 				<?php elseif ( is_wp_error( $search_results ) ) : ?>
+ 					<li><?php echo $search_results->get_error_message(); ?></li>
+ 				<?php elseif ( ! empty( $searched ) ) : ?>
+ 					<li><?php _e('No results found.'); ?></li>
+ 				<?php endif; ?>
+ 				</ul>
+ 			</div><!-- /.tabs-panel -->
 
-		<p class="button-controls">
-			<span class="list-controls">
-				<a href="<?php
-					echo esc_url(add_query_arg(
-						array(
-							$taxonomy_name . '-tab' => 'all',
-							'selectall' => 1,
-						),
-						remove_query_arg($removed_args)
-					));
-				?>#taxonomy-<?php echo $taxonomy_name; ?>" class="select-all"><?php _e('Select All'); ?></a>
-			</span>
-
-			<span class="add-to-menu">
-				<input type="submit"<?php wp_nav_menu_disabled_check( $nav_menu_selected_id ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( __( 'Add to Menu' ) ); ?>" name="add-taxonomy-menu-item" id="<?php esc_attr_e( 'submit-taxonomy-' . $taxonomy_name ); ?>" />
-				<span class="spinner"></span>
-			</span>
-		</p>
-
-	</div><!-- /.taxonomydiv -->
+ 			<p class="button-controls">
+ 				<span class="list-controls">
+ 					<a href="<?php echo esc_url( add_query_arg( array( $taxonomy_name . '-tab' => 'all', 'selectall' => 1 ), remove_query_arg( $removed_args ) ) . '#taxonomy-' .  $taxonomy_name ); ?>" class="select-all"><?php _e( 'Select All' ); ?></a>
+ 				</span>
+ 				<span class="add-to-menu">
+ 					<input type="submit"<?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( 'Add to Menu' ); ?>" name="add-taxonomy-menu-item" id="submit-taxonomy-<?php echo esc_attr( $taxonomy_name ); ?>" />
+ 					<span class="spinner"></span>
+ 				</span>
+ 			</p>
+ 		</div><!-- /.taxonomydiv -->
+	</li>
 	<?php
 }
 
Index: wp-admin/js/nav-menu.js
===================================================================
--- wp-admin/js/nav-menu.js	(revision 23658)
+++ wp-admin/js/nav-menu.js	(working copy)
@@ -42,7 +42,7 @@
 
 			this.attachUnsavedChangesListener();
 
-			if( api.menuList.length ) // If no menu, we're in the + tab.
+			if( api.menuList.length )
 				this.initSortables();
 
 			if( oneThemeLocationNoMenus )
@@ -51,6 +51,9 @@
 			this.initAccessibility();
 
 			this.initToggles();
+
+			// Open first accordion option
+			$( '.accordion-container li' ).first().addClass( 'open' );
 		},
 
 		jQueryExtensions : function() {
@@ -378,9 +381,6 @@
 		},
 
 		initToggles : function() {
-			// init postboxes
-			postboxes.add_postbox_toggles('nav-menus');
-
 			// adjust columns functions for menus UI
 			columns.useCheckboxesForHidden();
 			columns.checked = function(field) {
@@ -786,14 +786,11 @@
 					target = $(e.target);
 
 				if ( target.hasClass('nav-tab-link') ) {
-					panelId = /#(.*)$/.exec(e.target.href);
-					if ( panelId && panelId[1] )
-						panelId = panelId[1]
-					else
-						return false;
 
-					wrapper = target.parents('.inside').first();
+					panelId = target.data( 'type' );
 
+					wrapper = target.parents('.accordion-section-content').first();
+
 					// upon changing tabs, we want to uncheck all checkboxes
 					$('input', wrapper).removeAttr('checked');
 
@@ -806,7 +803,7 @@
 					// select the search bar
 					$('.quick-search', wrapper).focus();
 
-					return false;
+					e.preventDefault();
 				} else if ( target.hasClass('select-all') ) {
 					selectAreaMatch = /#(.*)$/.exec(e.target.href);
 					if ( selectAreaMatch && selectAreaMatch[1] ) {
Index: wp-admin/nav-menus.php
===================================================================
--- wp-admin/nav-menus.php	(revision 23658)
+++ wp-admin/nav-menus.php	(working copy)
@@ -23,6 +23,7 @@
 	wp_die( __( 'Cheatin&#8217; uh?' ) );
 
 wp_enqueue_script( 'nav-menu' );
+wp_enqueue_script( 'accordion' );
 
 if ( wp_is_mobile() )
 	wp_enqueue_script( 'jquery-touch-punch' );
@@ -421,7 +422,9 @@
 
 add_filter('admin_body_class', 'wp_nav_menu_max_depth');
 
-wp_nav_menu_setup();
+// Register advanced menu items (columns)
+add_filter( 'manage_nav-menus_columns', 'wp_nav_menu_manage_columns');
+
 wp_initial_nav_menu_meta_boxes();
 
 if ( ! current_theme_supports( 'menus' ) && ! wp_get_nav_menus() )
@@ -510,7 +513,11 @@
 			<input type="hidden" name="menu" id="nav-menu-meta-object-id" value="<?php echo esc_attr( $nav_menu_selected_id ); ?>" />
 			<input type="hidden" name="action" value="add-menu-item" />
 			<?php wp_nonce_field( 'add-menu_item', 'menu-settings-column-nonce' ); ?>
-			<?php do_meta_boxes( 'nav-menus', 'side', null ); ?>
+			<div id="side-sortables" class="accordion-container">
+				<ul class="outer-border">
+					<?php wp_nav_menu_setup(); ?>
+				</ul>
+			</div>
 		</form>
 
 	</div><!-- /#menu-settings-column -->
