Index: wp-admin/includes/nav-menu.php
===================================================================
--- wp-admin/includes/nav-menu.php	(revision 23386)
+++ wp-admin/includes/nav-menu.php	(working copy)
@@ -81,11 +81,15 @@
 
 		$title = empty( $item->label ) ? $title : $item->label;
 
+		$submenu_text = '';
+		if (0 == $depth)
+			$submenu_text = 'style="display: none;"';
+
 		?>
 		<li id="menu-item-<?php echo $item_id; ?>" class="<?php echo implode(' ', $classes ); ?>">
 			<dl class="menu-item-bar">
 				<dt class="menu-item-handle">
-					<span class="item-title"><?php echo esc_html( $title ); ?></span>
+					<span class="item-title"><?php echo esc_html( $title ); ?> <span class="is-submenu" <?php echo $submenu_text; ?>><?php _e( 'sub item' ); ?></span></span>
 					<span class="item-controls">
 						<span class="item-type"><?php echo esc_html( $item->type_label ); ?></span>
 						<span class="item-order hide-if-js">
@@ -383,9 +387,9 @@
 function wp_nav_menu_setup() {
 	// Register meta boxes
 	if ( wp_get_nav_menus() )
-		add_meta_box( 'nav-menu-theme-locations', __( 'Theme Locations' ), 'wp_nav_menu_locations_meta_box' , 'nav-menus', 'side', 'default' );
-	add_meta_box( 'add-custom-links', __('Custom Links'), 'wp_nav_menu_item_link_meta_box', 'nav-menus', 'side', 'default' );
+		add_meta_box( 'nav-menu-theme-locations', __( 'Menus within your theme' ), 'wp_nav_menu_locations_meta_box' , 'nav-menus', 'side', 'default' );
 	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_taxonomy_meta_boxes();
 
 	// Register advanced menu items (columns)
@@ -411,7 +415,7 @@
 	if ( get_user_option( 'metaboxhidden_nav-menus' ) !== false || ! is_array($wp_meta_boxes) )
 		return;
 
-	$initial_meta_boxes = array( 'nav-menu-theme-locations', 'add-custom-links', 'add-page', 'add-category' );
+	$initial_meta_boxes = array( 'nav-menu-theme-locations', 'add-page', 'add-custom-links', 'add-category' );
 	$hidden_meta_boxes = array();
 
 	foreach ( array_keys($wp_meta_boxes['nav-menus']) as $context ) {
@@ -445,7 +449,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 );
+			add_meta_box( "add-{$id}", __('Add ') . $post_type->labels->name, 'wp_nav_menu_item_post_type_meta_box', 'nav-menus', 'side', 'default', $post_type );
 		}
 	}
 }
@@ -465,7 +469,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 );
+			add_meta_box( "add-{$id}", __('Add ') . $tax->labels->name, 'wp_nav_menu_item_taxonomy_meta_box', 'nav-menus', 'side', 'default', $tax );
 		}
 	}
 }
@@ -489,7 +493,7 @@
 	$menu_locations = get_nav_menu_locations();
 	$num_locations = count( array_keys($locations) );
 
-	echo '<p class="howto">' . sprintf( _n('Your theme supports %s menu. Select which menu you would like to use.', 'Your theme supports %s menus. Select which menu appears in each location.', $num_locations ), number_format_i18n($num_locations) ) . '</p>';
+	echo '<p class="howto">' . _n('Select a menu to use within your theme.', 'Select the menus you will use in your theme.', $num_locations ) . '</p>';
 
 	foreach ( $locations as $location => $description ) {
 		?>
@@ -554,7 +558,7 @@
 
 			<p id="menu-item-name-wrap">
 				<label class="howto" for="custom-menu-item-name">
-					<span><?php _e('Label'); ?></span>
+					<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'); ?>" />
 				</label>
 			</p>
@@ -1084,10 +1088,7 @@
 	// If the menu exists, get its items.
 	if ( is_nav_menu( $menu ) ) {
 		$menu_items = wp_get_nav_menu_items( $menu->term_id, array('post_status' => 'any') );
-		$result = '<div id="menu-instructions" class="post-body-plain';
-		$result .= ( ! empty($menu_items) ) ? ' menu-instructions-inactive">' : '">';
-		$result .= '<p>' . __('Select menu items (pages, categories, links) from the boxes at left to begin building your custom menu.') . '</p>';
-		$result .= '</div>';
+		$result = '';
 
 		if( empty($menu_items) )
 			return $result . ' <ul class="menu" id="menu-to-edit"> </ul>';
@@ -1158,5 +1159,102 @@
 	foreach( (array) $menu_items_to_delete as $menu_item_id )
 		wp_delete_post( $menu_item_id, true );
 }
+add_action('admin_head-nav-menus.php', '_wp_delete_orphaned_draft_menu_items');
 
-add_action('admin_head-nav-menus.php', '_wp_delete_orphaned_draft_menu_items');
+/** 
+* Delete nav menus from the nav menu management screen 
+* 
+* @access private 
+* @since 3.6 
+*/ 
+function _wp_delete_nav_menu( $nav_menu_id ) { 
+
+	if ( ! is_nav_menu( $nav_menu_id ) ) 
+		return; 
+
+	$deleted_nav_menu = wp_get_nav_menu_object( $nav_menu_id ); 
+	$delete_nav_menu = wp_delete_nav_menu( $nav_menu_id ); 
+
+	if ( is_wp_error( $delete_nav_menu ) ) 
+		return $delete_nav_menu; 
+
+	// Remove this menu from any locations. 
+	$locations = get_theme_mod( 'nav_menu_locations' ); 
+	foreach ( (array) $locations as $location => $menu_id ) { 
+		if ( $menu_id == $nav_menu_id ) 
+			$locations[ $location ] = 0; 
+	} 
+	set_theme_mod( 'nav_menu_locations', $locations ); 
+ 	return true; 
+}
+
+/** 
+* Saves nav menu items 
+* 
+* @since 3.6 
+*/ 
+function wp_nav_menu_update_menu_items ($nav_menu_selected_id, $nav_menu_selected_title) {
+	$unsorted_menu_items = wp_get_nav_menu_items( $nav_menu_selected_id, array('orderby' => 'ID', 'output' => ARRAY_A, 'output_key' => 'ID', 'post_status' => 'draft,publish') );
+				
+	$menu_items = array();
+	// Index menu items by db ID
+	foreach( $unsorted_menu_items as $_item )
+		$menu_items[$_item->db_id] = $_item;
+
+	$post_fields = array( 'menu-item-db-id', 'menu-item-object-id', 'menu-item-object', 'menu-item-parent-id', 'menu-item-position', 'menu-item-type', 'menu-item-title', 'menu-item-url', 'menu-item-description', 'menu-item-attr-title', 'menu-item-target', 'menu-item-classes', 'menu-item-xfn' );
+	wp_defer_term_counting(true);
+	// Loop through all the menu items' POST variables
+	if ( ! empty( $_POST['menu-item-db-id'] ) ) {
+		foreach( (array) $_POST['menu-item-db-id'] as $_key => $k ) {
+
+			// Menu item title can't be blank
+			if ( empty( $_POST['menu-item-title'][$_key] ) )
+				continue;
+
+			$args = array();
+			foreach ( $post_fields as $field )
+				$args[$field] = isset( $_POST[$field][$_key] ) ? $_POST[$field][$_key] : '';
+
+			$menu_item_db_id = wp_update_nav_menu_item( $nav_menu_selected_id, ( $_POST['menu-item-db-id'][$_key] != $_key ? 0 : $_key ), $args );
+
+			if ( is_wp_error( $menu_item_db_id ) )
+				$messages[] = '<div id="message" class="error"><p>' . $menu_item_db_id->get_error_message() . '</p></div>';
+			elseif ( isset( $menu_items[$menu_item_db_id] ) )
+				unset( $menu_items[$menu_item_db_id] );
+		}
+	}
+
+	// Remove menu items from the menu that weren't in $_POST
+	if ( ! empty( $menu_items ) ) {
+		foreach ( array_keys( $menu_items ) as $menu_item_id ) {
+			if ( is_nav_menu_item( $menu_item_id ) ) {
+				wp_delete_post( $menu_item_id );
+			}
+		}
+	}
+
+	// Store 'auto-add' pages.
+	$auto_add = ! empty( $_POST['auto-add-pages'] );
+	$nav_menu_option = (array) get_option( 'nav_menu_options' );
+	if ( ! isset( $nav_menu_option['auto_add'] ) )
+		$nav_menu_option['auto_add'] = array();
+	if ( $auto_add ) {
+		if ( ! in_array( $nav_menu_selected_id, $nav_menu_option['auto_add'] ) )
+			$nav_menu_option['auto_add'][] = $nav_menu_selected_id;
+	} else {
+		if ( false !== ( $key = array_search( $nav_menu_selected_id, $nav_menu_option['auto_add'] ) ) )
+			unset( $nav_menu_option['auto_add'][$key] );
+	}
+	// Remove nonexistent/deleted menus
+	$nav_menu_option['auto_add'] = array_intersect( $nav_menu_option['auto_add'], wp_get_nav_menus( array( 'fields' => 'ids' ) ) );
+	update_option( 'nav_menu_options', $nav_menu_option );
+
+	wp_defer_term_counting(false);
+
+	do_action( 'wp_update_nav_menu', $nav_menu_selected_id );
+
+	$messages[] = '<div id="message" class="updated"><p>' . sprintf( __('<strong>%1$s</strong> has been updated.'), $nav_menu_selected_title ) . '</p></div>';
+	unset( $menu_items, $unsorted_menu_items );
+	
+	return $messages;
+}
\ No newline at end of file
Index: wp-admin/js/nav-menu.js
===================================================================
--- wp-admin/js/nav-menu.js	(revision 23386)
+++ wp-admin/js/nav-menu.js	(working copy)
@@ -45,9 +45,15 @@
 			if( api.menuList.length ) // If no menu, we're in the + tab.
 				this.initSortables();
 
+			if( oneThemeLocationNoMenus )
+				$('#posttype-page').addSelectedToMenu( api.addMenuItemToBottom );
+
 			this.initToggles();
-
-			this.initTabManager();
+			
+			this.messageFadeIn();
+			
+			this.initSelectMenuDropdown();
+			this.initAccessibility();
 		},
 
 		jQueryExtensions : function() {
@@ -84,18 +90,53 @@
 					});
 					return result;
 				},
+				shiftHorizontally : function(dir) {
+					return this.each(function(){
+						var t = $(this),
+							depth = t.menuItemDepth(),
+							newDepth = depth + dir;
+
+						// Change .menu-item-depth-n class
+						t.moveHorizontally(newDepth, depth);
+					});
+				},
+				moveHorizontally : function(newDepth, depth) {
+					return this.each(function(){
+						var t = $(this),
+							children = t.childMenuItems(),
+							diff = newDepth - depth,
+							subItemText = t.find('.is-submenu');
+
+						// Change .menu-item-depth-n class
+						t.updateDepthClass(newDepth, depth).updateParentMenuItemDBId();
+
+						// If it has children, move those too
+						if (children) {
+							children.each(function( index ) {
+								var thisDepth = $(this).menuItemDepth(),
+									newDepth = thisDepth + diff;
+								$(this).updateDepthClass(newDepth, thisDepth).updateParentMenuItemDBId();
+							});
+						}
+
+						// Show "Sub item" helper text
+						if (0 === newDepth)
+							subItemText.hide();
+						else
+							subItemText.show();
+					});
+				},
 				updateParentMenuItemDBId : function() {
 					return this.each(function(){
 						var item = $(this),
 							input = item.find('.menu-item-data-parent-id'),
-							depth = item.menuItemDepth(),
-							parent = item.prev();
+							depth = parseInt(item.menuItemDepth()),
+							parentDepth = depth - 1;
+							parent = item.prevAll('.menu-item-depth-' + parentDepth).first();
 
 						if( depth == 0 ) { // Item is on the top level, has no parent
 							input.val(0);
 						} else { // Find the parent item, and retrieve its object id.
-							while( ! parent[0] || ! parent[0].className || -1 == parent[0].className.indexOf('menu-item') || ( parent.menuItemDepth() != depth - 1 ) )
-								parent = parent.prev();
 							input.val( parent.find('.menu-item-data-db-id').val() );
 						}
 					});
@@ -120,7 +161,7 @@
 
 					return this.each(function() {
 						var t = $(this), menuItems = {},
-							checkboxes = t.find('.tabs-panel-active .categorychecklist li input:checked'),
+							checkboxes = ( oneThemeLocationNoMenus ) ? t.find('#page-all li input[type="checkbox"]') : t.find('.tabs-panel-active .categorychecklist li input:checked'),
 							re = new RegExp('menu-item\\[(\[^\\]\]*)');
 
 						processMethod = processMethod || api.addMenuItemToBottom;
@@ -222,7 +263,140 @@
 				}
 			});
 		},
+		
+		initSelectMenuDropdown : function () { 
+			var menuSelector = $('.manage-menus select'); 
 
+			menuSelector.on('change', function () { 
+				var url = $(this).val(); 
+
+				if (url && '--' !== url) { 
+					$('.menu-selector .spinner').show(); 
+					window.location = url; 
+				} 
+			}); 
+		}, 
+		
+		initAccessibility : function() {
+			$('.item-edit').on('focus', function () {
+				$(this).on('keydown', function (e) {
+
+					// Bail if it's not an arrow key
+					if (e.which !== 37 && e.which !== 38 && e.which !== 39 && e.which !== 40)
+						return;
+
+					// Avoid multiple keydown events
+					$(this).off('keydown');
+
+					var menuItems = $('#menu-to-edit li');
+						menuItemsCount = menuItems.length,
+						thisItem = $(this).parents('li.menu-item'),
+						thisItemChildren = thisItem.childMenuItems(),
+						thisItemData = thisItem.getItemData(),
+						thisItemDepth = parseInt(thisItem.menuItemDepth()),
+						thisItemPosition = parseInt(thisItem.index()),
+						nextItem = thisItem.next(),
+						nextItemChildren = nextItem.childMenuItems(),
+						nextItemDepth = parseInt(nextItem.menuItemDepth()) + 1,
+						prevItem = thisItem.prev(),
+						prevItemDepth = parseInt(prevItem.menuItemDepth()),
+						prevItemId = prevItem.getItemData()['menu-item-db-id'];
+
+					// Bail if there is only one menu item
+					if (1 === menuItemsCount)
+						return;
+						
+					// If RTL, swap left/right arrows
+					var arrows = { '38' : 'up', '40' : 'down', '37' : 'left', '39' : 'right' };
+					if ($('body').hasClass('rtl'))
+						arrows = { '38' : 'up', '40' : 'down', '39' : 'left', '37' : 'right' };
+
+					switch (arrows[e.which]) {
+					case 'up':
+						var newItemPosition = thisItemPosition - 1;
+
+						// Already at top
+						if (0 === thisItemPosition)
+							break;
+
+						// If a sub item is moved to top, shift it to 0 depth
+						if (0 === newItemPosition && 0 !== thisItemDepth)
+							thisItem.moveHorizontally(0, thisItemDepth);
+
+						// If prev item is sub item, shift to match depth
+						if (0 !== prevItemDepth)
+							thisItem.moveHorizontally(prevItemDepth, thisItemDepth);
+
+						// Does this item have sub items?
+						if (thisItemChildren) {
+							var items = thisItem.add(thisItemChildren);
+							// Move the entire block
+							items.detach().insertBefore(menuItems.eq(newItemPosition));
+						} else {
+							thisItem.detach().insertBefore(menuItems.eq(newItemPosition));
+						}
+						break;
+					case 'down':
+						// Does this item have sub items?
+						if (thisItemChildren) {
+							var items = thisItem.add(thisItemChildren),
+								nextItem = menuItems.eq(items.length + thisItemPosition),
+								nextItemChildren = 0 !== nextItem.childMenuItems().length;
+
+							if (nextItemChildren) {
+								var newDepth = parseInt(nextItem.menuItemDepth()) + 1;
+								thisItem.moveHorizontally(newDepth, thisItemDepth);
+							}
+
+							// Have we reached the bottom?
+							if (menuItemsCount === thisItemPosition + items.length)
+								break;
+
+							items.detach().insertAfter(menuItems.eq(thisItemPosition + items.length));
+						} else {
+							// If next item has sub items, shift depth
+							if (0 !== nextItemChildren.length)
+								thisItem.moveHorizontally(nextItemDepth, thisItemDepth);
+
+							// Have we reached the bottom
+							if (menuItemsCount === thisItemPosition + 1)
+								break;
+							thisItem.detach().insertAfter(menuItems.eq(thisItemPosition + 1));
+						}
+						break;
+					case 'left':
+						// As far left as possible
+						if (0 === thisItemDepth)
+							break;
+						thisItem.shiftHorizontally(-1);
+						break;
+					case 'right':
+						// Can't be sub item at top
+						if (0 === thisItemPosition)
+							break;
+						// Already sub item of prevItem
+						if (thisItemData['menu-item-parent-id'] === prevItemId)
+							break;
+						thisItem.shiftHorizontally(1);
+						break;
+					}
+					api.registerChange();
+					// Put focus back on same menu item
+					$('#edit-' + thisItemData['menu-item-db-id']).focus();
+					return false;
+				});
+			}).blur(function () {
+				$(this).off('keydown');
+			});
+		},
+		
+		messageFadeIn : function() {
+			var messages = $('#message');
+			
+			// Visual change when users save menus multiple times in a row
+			messages.slideDown('slow');
+		},
+
 		initToggles : function() {
 			// init postboxes
 			postboxes.add_postbox_toggles('nav-menus');
@@ -245,6 +419,9 @@
 				menuEdge = api.menuList.offset().left,
 				body = $('body'), maxChildDepth,
 				menuMaxDepth = initialMenuMaxDepth();
+				
+			if( 0 != $('#menu-to-edit li').length )
+				$('.drag-instructions').show();
 
 			// Use the right edge if RTL.
 			menuEdge += api.isRTL ? api.menuList.width() : 0;
@@ -307,6 +484,13 @@
 
 					// Return child elements to the list
 					children = transport.children().insertAfter(ui.item);
+					
+					// Add "sub menu" description
+					var subMenuTitle = ui.item.find('.item-title .is-submenu');
+					if (0 < currentDepth)
+						subMenuTitle.show();
+					else
+						subMenuTitle.hide();
 
 					// Update depth classes
 					if( depthChange != 0 ) {
@@ -327,9 +511,6 @@
 						ui.item[0].style.left = 'auto';
 						ui.item[0].style.right = 0;
 					}
-
-					// The width of the tab bar might have changed. Just in case.
-					api.refreshMenuTabs( true );
 				},
 				change: function(e, ui) {
 					// Make sure the placeholder is inside the menu.
@@ -461,6 +642,8 @@
 				if( '' == $t.val() )
 					$t.addClass( name ).val( $t.data(name) );
 			});
+			
+			$('.blank-slate .input-with-default-title').focus();
 		},
 
 		attachThemeLocationsListeners : function() {
@@ -572,6 +755,9 @@
 			$.post( ajaxurl, params, function(menuMarkup) {
 				var ins = $('#menu-instructions');
 				processMethod(menuMarkup, params);
+				// Make it stand out a bit more visually, by adding a fadeIn
+				$('li.pending').hide().fadeIn('slow');
+				$('.drag-instructions').show();
 				if( ! ins.hasClass('menu-instructions-inactive') && ins.siblings().length )
 					ins.addClass('menu-instructions-inactive');
 				callback();
@@ -604,7 +790,7 @@
 				};
 			} else {
 				// Make the post boxes read-only, as they can't be used yet
-				$('#menu-settings-column').find('input,select').prop('disabled', true).end().find('a').attr('href', '#').unbind('click');
+				$('#menu-settings-column').find('input,select').end().find('a').attr('href', '#').unbind('click');
 			}
 		},
 
@@ -688,139 +874,6 @@
 			});
 		},
 
-		initTabManager : function() {
-			var fixed = $('.nav-tabs-wrapper'),
-				fluid = fixed.children('.nav-tabs'),
-				active = fluid.children('.nav-tab-active'),
-				tabs = fluid.children('.nav-tab'),
-				tabsWidth = 0,
-				fixedRight, fixedLeft,
-				arrowLeft, arrowRight, resizeTimer, css = {},
-				marginFluid = api.isRTL ? 'margin-right' : 'margin-left',
-				marginFixed = api.isRTL ? 'margin-left' : 'margin-right',
-				msPerPx = 2;
-
-			/**
-			 * Refreshes the menu tabs.
-			 * Will show and hide arrows where necessary.
-			 * Scrolls to the active tab by default.
-			 *
-			 * @param savePosition {boolean} Optional. Prevents scrolling so
-			 * 		  that the current position is maintained. Default false.
-			 **/
-			api.refreshMenuTabs = function( savePosition ) {
-				var fixedWidth = fixed.width(),
-					margin = 0, css = {};
-				fixedLeft = fixed.offset().left;
-				fixedRight = fixedLeft + fixedWidth;
-
-				if( !savePosition )
-					active.makeTabVisible();
-
-				// Prevent space from building up next to the last tab if there's more to show
-				if( tabs.last().isTabVisible() ) {
-					margin = fixed.width() - tabsWidth;
-					margin = margin > 0 ? 0 : margin;
-					css[marginFluid] = margin + 'px';
-					fluid.animate( css, 100, "linear" );
-				}
-
-				// Show the arrows only when necessary
-				if( fixedWidth > tabsWidth )
-					arrowLeft.add( arrowRight ).hide();
-				else
-					arrowLeft.add( arrowRight ).show();
-			}
-
-			$.fn.extend({
-				makeTabVisible : function() {
-					var t = this.eq(0), left, right, css = {}, shift = 0;
-
-					if( ! t.length ) return this;
-
-					left = t.offset().left;
-					right = left + t.outerWidth();
-
-					if( right > fixedRight )
-						shift = fixedRight - right;
-					else if ( left < fixedLeft )
-						shift = fixedLeft - left;
-
-					if( ! shift ) return this;
-
-					css[marginFluid] = "+=" + api.negateIfRTL * shift + 'px';
-					fluid.animate( css, Math.abs( shift ) * msPerPx, "linear" );
-					return this;
-				},
-				isTabVisible : function() {
-					var t = this.eq(0),
-						left = t.offset().left,
-						right = left + t.outerWidth();
-					return ( right <= fixedRight && left >= fixedLeft ) ? true : false;
-				}
-			});
-
-			// Find the width of all tabs
-			tabs.each(function(){
-				tabsWidth += $(this).outerWidth(true);
-			});
-
-			// Set up fixed margin for overflow, unset padding
-			css['padding'] = 0;
-			css[marginFixed] = (-1 * tabsWidth) + 'px';
-			fluid.css( css );
-
-			// Build tab navigation
-			arrowLeft = $('<div class="nav-tabs-arrow nav-tabs-arrow-left"><a>&laquo;</a></div>');
-			arrowRight = $('<div class="nav-tabs-arrow nav-tabs-arrow-right"><a>&raquo;</a></div>');
-			// Attach to the document
-			fixed.wrap('<div class="nav-tabs-nav"/>').parent().prepend( arrowLeft ).append( arrowRight );
-
-			// Set the menu tabs
-			api.refreshMenuTabs();
-			// Make sure the tabs reset on resize
-			$(window).resize(function() {
-				if( resizeTimer ) clearTimeout(resizeTimer);
-				resizeTimer = setTimeout( api.refreshMenuTabs, 200);
-			});
-
-			// Build arrow functions
-			$.each([{
-					arrow : arrowLeft,
-					next : "next",
-					last : "first",
-					operator : "+="
-				},{
-					arrow : arrowRight,
-					next : "prev",
-					last : "last",
-					operator : "-="
-				}], function(){
-				var that = this;
-				this.arrow.mousedown(function(){
-					var marginFluidVal = Math.abs( parseInt( fluid.css(marginFluid) ) ),
-						shift = marginFluidVal,
-						css = {};
-
-					if( "-=" == that.operator )
-						shift = Math.abs( tabsWidth - fixed.width() ) - marginFluidVal;
-
-					if( ! shift ) return;
-
-					css[marginFluid] = that.operator + shift + 'px';
-					fluid.animate( css, shift * msPerPx, "linear" );
-				}).mouseup(function(){
-					var tab, next;
-					fluid.stop(true);
-					tab = tabs[that.last]();
-					while( (next = tab[that.next]()) && next.length && ! next.isTabVisible() ) {
-						tab = next;
-					}
-					tab.makeTabVisible();
-				});
-			});
-		},
-
 		eventOnClickEditLink : function(clickedEl) {
 			var settings, item,
 			matchedSection = /#(.*)$/.exec(clickedEl.href);
@@ -945,8 +998,10 @@
 					var ins = $('#menu-instructions');
 					el.remove();
 					children.shiftDepthClass(-1).updateParentMenuItemDBId();
-					if( ! ins.siblings().length )
+					if( 0 == $('#menu-to-edit li').length ) {
+						$('.drag-instructions').hide();
 						ins.removeClass('menu-instructions-inactive');
+					}
 				});
 		},
 
Index: wp-admin/nav-menus.php
===================================================================
--- wp-admin/nav-menus.php	(revision 23386)
+++ wp-admin/nav-menus.php	(working copy)
@@ -221,43 +221,43 @@
 		if ( is_nav_menu_item( $menu_item_id ) && wp_delete_post( $menu_item_id, true ) )
 			$messages[] = '<div id="message" class="updated"><p>' . __('The menu item has been successfully deleted.') . '</p></div>';
 		break;
+
 	case 'delete':
 		check_admin_referer( 'delete-nav_menu-' . $nav_menu_selected_id );
-
 		if ( is_nav_menu( $nav_menu_selected_id ) ) {
-			$deleted_nav_menu = wp_get_nav_menu_object( $nav_menu_selected_id );
-			$delete_nav_menu = wp_delete_nav_menu( $nav_menu_selected_id );
-
-			if ( is_wp_error($delete_nav_menu) ) {
-				$messages[] = '<div id="message" class="error"><p>' . $delete_nav_menu->get_error_message() . '</p></div>';
-			} else {
-				// Remove this menu from any locations.
-				$locations = get_theme_mod( 'nav_menu_locations' );
-				foreach ( (array) $locations as $location => $menu_id ) {
-					if ( $menu_id == $nav_menu_selected_id )
-						$locations[ $location ] = 0;
-				}
-				set_theme_mod( 'nav_menu_locations', $locations );
-				$messages[] = '<div id="message" class="updated"><p>' . __('The menu has been successfully deleted.') . '</p></div>';
-				// Select the next available menu
-				$nav_menu_selected_id = 0;
-				$_nav_menus = wp_get_nav_menus( array('orderby' => 'name') );
-				foreach( $_nav_menus as $index => $_nav_menu ) {
-					if ( strcmp( $_nav_menu->name, $deleted_nav_menu->name ) >= 0
-					 || $index == count( $_nav_menus ) - 1 ) {
-						$nav_menu_selected_id = $_nav_menu->term_id;
-						break;
-					}
-				}
-			}
-			unset( $delete_nav_menu, $deleted_nav_menu, $_nav_menus );
+			$deletion = _wp_delete_nav_menu( $nav_menu_selected_id );
 		} else {
 			// Reset the selected menu
 			$nav_menu_selected_id = 0;
 			unset( $_REQUEST['menu'] );
 		}
+		
+		if ( ! isset( $deletion ) )
+			break;
+
+		if ( is_wp_error( $deletion ) )
+			$messages[] = '<div id="message" class="error"><p>' . $deletion->get_error_message() . '</p></div>';
+		else
+			$messages[] = '<div id="message" class="updated"><p>' . __( 'The menu has been successfully deleted.' ) . '</p></div>';
 		break;
 
+	case 'delete_menus':
+		check_admin_referer( 'nav_menus_bulk_actions' );
+		foreach ( $_REQUEST['delete_menus'] as $menu_id_to_delete ) {
+			if ( ! is_nav_menu( $menu_id_to_delete ) )
+				continue;
+
+			$deletion = _wp_delete_nav_menu( $menu_id_to_delete );
+			if ( is_wp_error( $deletion ) ) {
+				$messages[] = '<div id="message" class="error"><p>' . $deletion->get_error_message() . '</p></div>';
+				$deletion_error = true;
+			}
+		}
+
+		if ( empty( $deletion_error ) )
+			$messages[] = '<div id="message" class="updated"><p>' . __( 'Selected menus have been successfully deleted.' ) . '</p></div>';
+		break;
+
 	case 'update':
 		check_admin_referer( 'update-nav_menu', 'update-nav-menu-nonce' );
 
@@ -278,7 +278,12 @@
 					$_menu_object = wp_get_nav_menu_object( $_nav_menu_selected_id );
 					$nav_menu_selected_id = $_nav_menu_selected_id;
 					$nav_menu_selected_title = $_menu_object->name;
-					$messages[] = '<div id="message" class="updated"><p>' . sprintf( __('The <strong>%s</strong> menu has been successfully created.'), $nav_menu_selected_title ) . '</p></div>';
+					if ( isset( $_REQUEST['menu-item'] ) )
+						wp_save_nav_menu_items( $nav_menu_selected_id, $_REQUEST['menu-item'] );
+					// If there are menu items, add them
+					if ( isset( $_REQUEST['zero-menu-state'] ) )
+						wp_nav_menu_update_menu_items( $nav_menu_selected_id, $nav_menu_selected_title );
+					$messages[] = '<div id="message" class="updated"><p>' . sprintf( __('<strong>%s</strong> has been created. Next, add menu items (i.e. pages, links, categories) from the column on the left.'), $nav_menu_selected_title ) . '</p></div>';
 				}
 			} else {
 				$messages[] = '<div id="message" class="error"><p>' . __('Please enter a valid menu name.') . '</p></div>';
@@ -309,66 +314,7 @@
 			// Update menu items
 
 			if ( ! is_wp_error( $_menu_object ) ) {
-				$unsorted_menu_items = wp_get_nav_menu_items( $nav_menu_selected_id, array('orderby' => 'ID', 'output' => ARRAY_A, 'output_key' => 'ID', 'post_status' => 'draft,publish') );
-				$menu_items = array();
-				// Index menu items by db ID
-				foreach( $unsorted_menu_items as $_item )
-					$menu_items[$_item->db_id] = $_item;
-
-				$post_fields = array( 'menu-item-db-id', 'menu-item-object-id', 'menu-item-object', 'menu-item-parent-id', 'menu-item-position', 'menu-item-type', 'menu-item-title', 'menu-item-url', 'menu-item-description', 'menu-item-attr-title', 'menu-item-target', 'menu-item-classes', 'menu-item-xfn' );
-				wp_defer_term_counting(true);
-				// Loop through all the menu items' POST variables
-				if ( ! empty( $_POST['menu-item-db-id'] ) ) {
-					foreach( (array) $_POST['menu-item-db-id'] as $_key => $k ) {
-
-						// Menu item title can't be blank
-						if ( empty( $_POST['menu-item-title'][$_key] ) )
-							continue;
-
-						$args = array();
-						foreach ( $post_fields as $field )
-							$args[$field] = isset( $_POST[$field][$_key] ) ? $_POST[$field][$_key] : '';
-
-						$menu_item_db_id = wp_update_nav_menu_item( $nav_menu_selected_id, ( $_POST['menu-item-db-id'][$_key] != $_key ? 0 : $_key ), $args );
-
-						if ( is_wp_error( $menu_item_db_id ) )
-							$messages[] = '<div id="message" class="error"><p>' . $menu_item_db_id->get_error_message() . '</p></div>';
-						elseif ( isset( $menu_items[$menu_item_db_id] ) )
-							unset( $menu_items[$menu_item_db_id] );
-					}
-				}
-
-				// Remove menu items from the menu that weren't in $_POST
-				if ( ! empty( $menu_items ) ) {
-					foreach ( array_keys( $menu_items ) as $menu_item_id ) {
-						if ( is_nav_menu_item( $menu_item_id ) ) {
-							wp_delete_post( $menu_item_id );
-						}
-					}
-				}
-
-				// Store 'auto-add' pages.
-				$auto_add = ! empty( $_POST['auto-add-pages'] );
-				$nav_menu_option = (array) get_option( 'nav_menu_options' );
-				if ( ! isset( $nav_menu_option['auto_add'] ) )
-					$nav_menu_option['auto_add'] = array();
-				if ( $auto_add ) {
-					if ( ! in_array( $nav_menu_selected_id, $nav_menu_option['auto_add'] ) )
-						$nav_menu_option['auto_add'][] = $nav_menu_selected_id;
-				} else {
-					if ( false !== ( $key = array_search( $nav_menu_selected_id, $nav_menu_option['auto_add'] ) ) )
-						unset( $nav_menu_option['auto_add'][$key] );
-				}
-				// Remove nonexistent/deleted menus
-				$nav_menu_option['auto_add'] = array_intersect( $nav_menu_option['auto_add'], wp_get_nav_menus( array( 'fields' => 'ids' ) ) );
-				update_option( 'nav_menu_options', $nav_menu_option );
-
-				wp_defer_term_counting(false);
-
-				do_action( 'wp_update_nav_menu', $nav_menu_selected_id );
-
-				$messages[] = '<div id="message" class="updated"><p>' . sprintf( __('The <strong>%s</strong> menu has been updated.'), $nav_menu_selected_title ) . '</p></div>';
-				unset( $menu_items, $unsorted_menu_items );
+				$messages = array_merge( $messages, wp_nav_menu_update_menu_items( $nav_menu_selected_id, $nav_menu_selected_title ) );
 			}
 		}
 		break;
@@ -376,22 +322,33 @@
 
 // Get all nav menus
 $nav_menus = wp_get_nav_menus( array('orderby' => 'name') );
+$menu_count = count( $nav_menus );
 
+// Are we on the add new screen?
+$add_new_screen = ( isset( $_GET['menu'] ) && 0 == $_GET['menu'] ) ? true : false;
+
+// If we have one theme location, and zero menus, we take them right into editing their first menu
+$one_theme_location_no_menus = ( 1 == count( get_registered_nav_menus() ) && ! $add_new_screen && empty($nav_menus) && 0 < count(get_pages()) ) ? true : false;
+
+// Redirect to add screen if there are no menus and this users has either zero, or more than 1 theme locations
+if ( 0 == $menu_count && ! $add_new_screen && ! $one_theme_location_no_menus )
+	wp_redirect( admin_url( 'nav-menus.php?action=edit&menu=0' ) );
+
 // Get recently edited nav menu
 $recently_edited = (int) get_user_option( 'nav_menu_recently_edited' );
-
-// If there was no recently edited menu, and $nav_menu_selected_id is a nav menu, update recently edited menu.
-if ( !$recently_edited && is_nav_menu( $nav_menu_selected_id ) ) {
+if ( !$recently_edited && is_nav_menu( $nav_menu_selected_id ) )
 	$recently_edited = $nav_menu_selected_id;
 
-// Else if $nav_menu_selected_id is not a menu and not requesting that we create a new menu, but $recently_edited is a menu, grab that one.
-} elseif ( 0 == $nav_menu_selected_id && ! isset( $_REQUEST['menu'] ) && is_nav_menu( $recently_edited ) ) {
+// Use $recently_edited if none are selected
+if ( 0 == $nav_menu_selected_id && ! isset( $_GET['menu'] ) && is_nav_menu( $recently_edited ) )
 	$nav_menu_selected_id = $recently_edited;
 
-// Else try to grab the first menu from the menus list
-} elseif ( 0 == $nav_menu_selected_id && ! isset( $_REQUEST['menu'] ) && ! empty($nav_menus) ) {
+// On deletion of menu, if another menu exists, show it
+if ( ! $add_new_screen && 0 < $menu_count && isset( $_GET['action'] ) && 'delete' == $_GET['action'] )
 	$nav_menu_selected_id = $nav_menus[0]->term_id;
-}
+	
+if ( $one_theme_location_no_menus )
+	$nav_menu_selected_id = 0;
 
 // Update the user's setting
 if ( $nav_menu_selected_id != $recently_edited && is_nav_menu( $nav_menu_selected_id ) )
@@ -418,8 +375,10 @@
 $_wp_nav_menu_max_depth = 0;
 
 // Calling wp_get_nav_menu_to_edit generates $_wp_nav_menu_max_depth
-if ( is_nav_menu( $nav_menu_selected_id ) )
+if ( is_nav_menu( $nav_menu_selected_id ) ) {
+	$menu_items = wp_get_nav_menu_items( $nav_menu_selected_id, array('post_status' => 'any') );
 	$edit_markup = wp_get_nav_menu_to_edit( $nav_menu_selected_id );
+}
 
 function wp_nav_menu_max_depth($classes) {
 	global $_wp_nav_menu_max_depth;
@@ -460,15 +419,31 @@
 ?>
 <div class="wrap">
 	<?php screen_icon(); ?>
-	<h2><?php esc_html_e('Menus'); ?></h2>
+	<h2>Menus <a href="<?php echo esc_url( add_query_arg( array( 'action' => 'edit', 'menu' => 0, ), admin_url( 'nav-menus.php' ) ) ); ?>" class="add-new-h2">Add New</a></h2>
 	<?php
 	foreach( $messages as $message ) :
 		echo $message . "\n";
 	endforeach;
 	?>
+	<?php if ( 1 < $menu_count ) : ?> 
+	<div class="manage-menus">
+		<span><?php _e('Selected menu'); ?></span> 
+		<select>
+			<?php 
+			foreach( (array) $nav_menus as $_nav_menu ) : ?> 
+			<option value="<?php echo esc_url(add_query_arg( array( 'action' => 'edit', 'menu' => $_nav_menu->term_id, ), admin_url( 'nav-menus.php' ) )); ?>" <?php if ( $nav_menu_selected_id == $_nav_menu->term_id ) echo 'selected="selected"'; ?>> 
+				<?php echo esc_html( $_nav_menu->truncated_name ); ?> 
+			</option> 
+		<?php endforeach; ?> 
+		</select>
+		<span class="spinner"></span>
+	</div>
+	<?php endif; ?>
 	<div id="nav-menus-frame">
-	<div id="menu-settings-column" class="metabox-holder<?php if ( !$nav_menu_selected_id ) { echo ' metabox-holder-disabled'; } ?>">
+	<div id="menu-settings-column" class="metabox-holder<?php if ( isset( $_GET['menu'] ) && '0' == $_GET['menu'] ) { echo ' metabox-holder-disabled'; } ?>">
 
+		<div class="clear"></div>
+
 		<form id="nav-menu-meta" action="<?php echo admin_url( 'nav-menus.php' ); ?>" class="nav-menu-meta" method="post" enctype="multipart/form-data">
 			<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" />
@@ -479,129 +454,92 @@
 	</div><!-- /#menu-settings-column -->
 	<div id="menu-management-liquid">
 		<div id="menu-management">
-			<div id="select-nav-menu-container" class="hide-if-js">
-				<form id="select-nav-menu" action="">
-					<strong><label for="select-nav-menu"><?php esc_html_e( 'Select Menu:' ); ?></label></strong>
-					<select class="select-nav-menu" name="menu">
-						<?php foreach( (array) $nav_menus as $_nav_menu ) : ?>
-							<option value="<?php echo esc_attr($_nav_menu->term_id) ?>" <?php selected($nav_menu_selected_id, $_nav_menu->term_id); ?>>
-								<?php echo esc_html( $_nav_menu->truncated_name ); ?>
-							</option>
-						<?php endforeach; ?>
-						<option value="0"><?php esc_html_e('Add New Menu'); ?></option>
-					</select>
-					<input type="hidden" name="action" value="edit" />
-					<?php submit_button( __( 'Select' ), 'secondary', 'select_menu', false ); ?>
-				</form>
-			</div>
-			<div class="nav-tabs-wrapper">
-			<div class="nav-tabs">
-				<?php
-				foreach( (array) $nav_menus as $_nav_menu ) :
-					if ( $nav_menu_selected_id == $_nav_menu->term_id ) : ?><span class="nav-tab nav-tab-active">
-							<?php echo esc_html( $_nav_menu->truncated_name ); ?>
-						</span><?php else : ?><a href="<?php
-							echo esc_url(add_query_arg(
-								array(
-									'action' => 'edit',
-									'menu' => $_nav_menu->term_id,
-								),
-								admin_url( 'nav-menus.php' )
-							));
-						?>" class="nav-tab hide-if-no-js">
-							<?php echo esc_html( $_nav_menu->truncated_name ); ?>
-						</a><?php endif;
-				endforeach;
-				if ( 0 == $nav_menu_selected_id ) : ?><span class="nav-tab menu-add-new nav-tab-active">
-					<?php printf( '<abbr title="%s">+</abbr>', esc_html__( 'Add menu' ) ); ?>
-				</span><?php else : ?><a href="<?php
-					echo esc_url(add_query_arg(
-						array(
-							'action' => 'edit',
-							'menu' => 0,
-						),
-						admin_url( 'nav-menus.php' )
-					));
-				?>" class="nav-tab menu-add-new">
-					<?php printf( '<abbr title="%s">+</abbr>', esc_html__( 'Add menu' ) ); ?>
-				</a><?php endif; ?>
-			</div>
-			</div>
-			<div class="menu-edit">
-				<form id="update-nav-menu" action="<?php echo admin_url( 'nav-menus.php' ); ?>" method="post" enctype="multipart/form-data">
+			<form id="update-nav-menu" action="<?php echo admin_url( 'nav-menus.php' ); ?>" method="post" enctype="multipart/form-data">
+				<div class="menu-edit <?php if ( $add_new_screen ) echo 'blank-slate'; ?>">
+					<?php
+					wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false );
+					wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false );
+					wp_nonce_field( 'update-nav_menu', 'update-nav-menu-nonce' );
+					?>
+					<?php if ( $one_theme_location_no_menus ) { ?>
+					<input type="hidden" name="zero-menu-state" value="true" />
+					<?php } ?>
+ 					<input type="hidden" name="action" value="update" />
+					<input type="hidden" name="menu" id="menu" value="<?php echo esc_attr( $nav_menu_selected_id ); ?>" />
 					<div id="nav-menu-header">
-						<div id="submitpost" class="submitbox">
-							<div class="major-publishing-actions">
-								<label class="menu-name-label howto open-label" for="menu-name">
-									<span><?php _e('Menu Name'); ?></span>
-									<input name="menu-name" id="menu-name" type="text" class="menu-name regular-text menu-item-textbox input-with-default-title" title="<?php esc_attr_e('Enter menu name here'); ?>" value="<?php echo esc_attr( $nav_menu_selected_title ); ?>" />
-								</label>
-								<?php if ( !empty( $nav_menu_selected_id ) ) :
-									if ( ! isset( $auto_add ) ) {
-										$auto_add = get_option( 'nav_menu_options' );
-										if ( ! isset( $auto_add['auto_add'] ) )
-											$auto_add = false;
-										elseif ( false !== array_search( $nav_menu_selected_id, $auto_add['auto_add'] ) )
-											$auto_add = true;
-										else
-											$auto_add = false;
-									}
-								?>
-								<div class="auto-add-pages">
-									<label class="howto"><input type="checkbox"<?php checked( $auto_add ); ?> name="auto-add-pages" value="1" /> <?php printf( __('Automatically add new top-level pages' ), esc_url( admin_url( 'edit.php?post_type=page' ) ) ); ?></label>
-								</div>
-								<?php endif; ?>
-								<br class="clear" />
-								<div class="publishing-action">
-									<?php submit_button( empty( $nav_menu_selected_id ) ? __( 'Create Menu' ) : __( 'Save Menu' ), 'button-primary menu-save', 'save_menu', false, array( 'id' => 'save_menu_header' ) ); ?>
-								</div><!-- END .publishing-action -->
-
-								<?php if ( ! empty( $nav_menu_selected_id ) ) : ?>
-								<div class="delete-action">
-									<a class="submitdelete deletion menu-delete" href="<?php echo esc_url( wp_nonce_url( admin_url('nav-menus.php?action=delete&amp;menu=' . $nav_menu_selected_id), 'delete-nav_menu-' . $nav_menu_selected_id ) ); ?>"><?php _e('Delete Menu'); ?></a>
-								</div><!-- END .delete-action -->
-								<?php endif; ?>
-							</div><!-- END .major-publishing-actions -->
-						</div><!-- END #submitpost .submitbox -->
-						<?php
-						wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false );
-						wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false );
-						wp_nonce_field( 'update-nav_menu', 'update-nav-menu-nonce' );
-						?>
-						<input type="hidden" name="action" value="update" />
-						<input type="hidden" name="menu" id="menu" value="<?php echo esc_attr( $nav_menu_selected_id ); ?>" />
-					</div><!-- END #nav-menu-header -->
+						<div class="major-publishing-actions">
+							<h2><?php if ( $one_theme_location_no_menus ) { _e('Menu 1'); } else { echo esc_attr( $nav_menu_selected_title ); } ?></h2>
+							<div class="publishing-action">
+								<?php submit_button( empty( $nav_menu_selected_id ) ? __( 'Create Menu' ) : __( 'Save Menu' ), 'button-primary menu-save', 'save_menu', false, array( 'id' => 'save_menu_header' ) ); ?>
+							</div><!-- END .publishing-action -->
+						</div><!-- END .major-publishing-actions -->
+					</div><!-- END .nav-menu-header -->
 					<div id="post-body">
 						<div id="post-body-content">
+							<div class="menu-settings" <?php if ( $one_theme_location_no_menus ) { ?>style="display: none;"<?php } ?>>
+								<h3 class="settings-header"><?php _e('Settings'); ?></strong></h3>
+								<?php if ( $add_new_screen ) : ?>
+									<h3><?php _e('Add a new menu'); ?></strong></h3>
+									<p class="post-body-plain"><?php _e('Give your menu a name, then click Create Menu.'); ?></p>
+								<?php endif; ?>
+								<dl>
+									<dt class="howto"><label class="menu-name-label" for="menu-name"><?php _e('Menu Name'); ?></label></dt>
+									<dd>
+										<?php if ( $one_theme_location_no_menus ) { ?>
+										<input name="menu-name" id="menu-name" type="hidden" class="menu-name regular-text menu-item-textbox input-with-default-title" value="<?php _e('Menu 1'); ?>" />
+										<?php } else { ?>
+										<input name="menu-name" id="menu-name" type="text" class="menu-name regular-text menu-item-textbox input-with-default-title" title="<?php esc_attr_e('Enter menu name here'); ?>" value="<?php echo esc_attr( $nav_menu_selected_title ); ?>" />
+										<?php } ?>
+									</dd>
+								</dl>
+								<?php
+								if ( ! isset( $auto_add ) ) {
+									$auto_add = get_option( 'nav_menu_options' );
+									if ( ! isset( $auto_add['auto_add'] ) )
+										$auto_add = false;
+									elseif ( false !== array_search( $nav_menu_selected_id, $auto_add['auto_add'] ) )
+										$auto_add = true;
+									else
+										$auto_add = false;
+								} ?>
+								<dl class="auto-add-pages">
+									<dt class="howto"><?php _e('Auto add pages'); ?></dt>
+									<dd class="checkbox-input"><input type="checkbox"<?php checked( $auto_add ); ?> name="auto-add-pages" id="auto-add-pages" value="1" /> <label for="auto-add-pages"><?php printf( __('Automatically add new top-level pages' ), esc_url( admin_url( 'edit.php?post_type=page' ) ) ); ?></label></dd>
+								</dl>
+							</div>
+							<?php if ( ! $add_new_screen ) : ?>
+							<h3><?php _e('Menu Structure'); ?></strong></h3>
+							<?php $starter_copy = ( $one_theme_location_no_menus ) ? __("Edit your default menu by adding or removing items. Drag each item into the order you prefer. Click Create Menu to save your changes.") : __('Drag each item into the order you prefer. Click an item to reveal additional configuration options.') ; ?>
+							<div class="drag-instructions post-body-plain" <?php if ( isset( $menu_items ) && 0 == count( $menu_items ) ) { ?>style="display: none;"<?php } ?>>
+								<p><?php echo $starter_copy; ?></p>
+							</div>
 							<?php
-							if ( isset( $edit_markup ) ) {
-								if ( ! is_wp_error( $edit_markup ) )
-									echo $edit_markup;
-							} else if ( empty( $nav_menu_selected_id ) ) {
-								echo '<div class="post-body-plain">';
-								echo '<p>' . __('To create a custom menu, give it a name above and click Create Menu. Then choose items like pages, categories or custom links from the left column to add to this menu.') . '</p>';
-								echo '<p>' . __('After you have added your items, drag and drop to put them in the order you want. You can also click each item to reveal additional configuration options.') . '</p>';
-								echo '<p>' . __('When you have finished building your custom menu, make sure you click the Save Menu button.') . '</p>';
-								echo '</div>';
-							}
+							if ( isset( $edit_markup ) && ! is_wp_error( $edit_markup ) ) {
+								echo $edit_markup;
+							} else {
 							?>
+							<ul class="menu" id="menu-to-edit"></ul>
+							<?php } ?>
+							<?php endif; ?>
 						</div><!-- /#post-body-content -->
 					</div><!-- /#post-body -->
 					<div id="nav-menu-footer">
 						<div class="major-publishing-actions">
-						<div class="publishing-action">
-							<?php
-							if ( ! empty( $nav_menu_selected_id ) )
-								submit_button( __( 'Save Menu' ), 'button-primary menu-save', 'save_menu', false, array( 'id' => 'save_menu_footer' ) );
-							?>
-						</div>
-						</div>
+							<?php if ( 0 != $menu_count && ! $add_new_screen ) : ?> 
+							<span class="delete-action"> 
+								<a class="submitdelete deletion menu-delete" href="<?php echo esc_url( wp_nonce_url( admin_url('nav-menus.php?action=delete&amp;menu=' . $nav_menu_selected_id), 'delete-nav_menu-' . $nav_menu_selected_id ) ); ?>"><?php _e('Delete Menu'); ?></a> 
+							</span><!-- END .delete-action --> 
+							<?php endif; ?>
+							<div class="publishing-action">
+								<?php submit_button( empty( $nav_menu_selected_id ) ? __( 'Create Menu' ) : __( 'Save Menu' ), 'button-primary menu-save', 'save_menu', false, array( 'id' => 'save_menu_header' ) ); ?>
+							</div><!-- END .publishing-action -->
+						</div><!-- END .major-publishing-actions -->
 					</div><!-- /#nav-menu-footer -->
-				</form><!-- /#update-nav-menu -->
-			</div><!-- /.menu-edit -->
+				</div><!-- /.menu-edit -->
+			</form><!-- /#update-nav-menu -->
 		</div><!-- /#menu-management -->
 	</div><!-- /#menu-management-liquid -->
 	</div><!-- /#nav-menus-frame -->
 </div><!-- /.wrap-->
-
+<script type="text/javascript">var oneThemeLocationNoMenus = <?php if ( $one_theme_location_no_menus ) { echo 'true'; } else { echo 'false'; } ?>;</script>
 <?php include( './admin-footer.php' ); ?>
Index: wp-admin/css/wp-admin.css
===================================================================
--- wp-admin/css/wp-admin.css	(revision 23386)
+++ wp-admin/css/wp-admin.css	(working copy)
@@ -2433,7 +2433,8 @@
 .fixed .column-categories,
 .fixed .column-tags,
 .fixed .column-rel,
-.fixed .column-role {
+.fixed .column-role,
+.fixed .column-count {
 	width: 15%;
 }
 
@@ -6760,8 +6761,17 @@
 
 /* nav-menu */
 
+.nav-menus-php #message {
+	display: none;
+}
+
+.nav-menus-php .nav-tab-wrapper {
+	margin-bottom: 20px;
+}
+
 #nav-menus-frame {
 	margin-left: 300px;
+	margin-top: 20px;
 }
 
 #wpbody-content #menu-settings-column {
@@ -6770,7 +6780,7 @@
 	margin-left: -300px;
 	clear: both;
 	float: left;
-	padding-top: 24px;
+	padding-top: 0;
 }
 
 .no-js #wpbody-content #menu-settings-column {
@@ -6795,10 +6805,81 @@
 	position: relative;
 }
 
+.blank-slate br { 
+	display: none; 
+} 
+
+.blank-slate .menu-name { 
+	height: 2em; 
+}
+
+.is-submenu {
+	color: #999;
+	font-style: italic;
+	font-weight: normal;
+	margin-left: 4px;
+}
+
+.manage-menus {
+	border: 1px solid #eee;
+	background: #fbfbfb;
+	margin-top: 13px;
+	padding: 10px;
+	overflow: hidden;
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+}
+
+.manage-menus select {
+	float: left;
+	min-width: 180px;
+}
+
+.manage-menus .spinner {
+	float: left;
+}
+
+.manage-menus span {
+	float: left;
+	margin: 4px 6px 0 0;
+}
+
+.menu-edit p {
+	margin: .3em 0 .6em;
+}
+
+.menu-settings {
+	overflow: hidden;
+}
+
+.menu-settings dl {
+	margin: 0;
+	overflow: hidden;
+}
+
+.menu-settings dd {
+	float: left;
+	margin: 0;
+	width: 60%;
+}
+
+.menu-settings dt {
+	clear: both;
+	display: inline;
+	float: left;
+	padding: 3px 0 13px;
+	width: 170px;
+}
+
+.menu-edit .checkbox-input {
+	margin-top: 4px;
+}
+
 /* Menu Container */
 #menu-management-liquid {
 	float: left;
 	min-width: 100%;
+	margin-top: 3px;
 }
 
 #menu-management {
@@ -6812,8 +6893,12 @@
 	margin-bottom: 20px;
 }
 
+#menu-management p.search-box {
+	margin: 5px 0;
+}
+
 .nav-menus-php #post-body {
-	padding: 10px;
+	padding: 0 10px;
 	border-width: 1px 0;
 	border-style: solid;
 }
@@ -6827,6 +6912,14 @@
 	border-bottom: 1px solid;
 }
 
+#nav-menu-header h2 {
+	float: left;
+	line-height: 18px;
+	margin: 0;
+	padding: 6px 0 0 0;
+	font-size: 18px;
+}
+
 #nav-menu-footer {
 	border-top: 1px solid;
 }
@@ -6845,55 +6938,6 @@
 	font-weight:bold;
 }
 
-/* Menu Tabs */
-
-#menu-management .nav-tabs-nav {
-	margin: 0 20px;
-}
-
-#menu-management .nav-tabs-arrow {
-	width: 10px;
-	padding: 0 5px 4px;
-	cursor: pointer;
-	position: absolute;
-	top: 0;
-	line-height: 22px;
-	font-size: 18px;
-	text-shadow: 0 1px 0 #fff;
-}
-
-#menu-management .nav-tabs-arrow-left {
-	left: 0;
-}
-
-#menu-management .nav-tabs-arrow-right {
-	right: 0;
-	text-align: right;
-}
-
-#menu-management .nav-tabs-wrapper {
-	width: 100%;
-	height: 28px;
-	margin-bottom: -1px;
-	overflow: hidden;
-}
-
-#menu-management .nav-tabs {
-	padding-left: 20px;
-	padding-right: 10px;
-}
-
-.js #menu-management .nav-tabs {
-	float: left;
-	margin-left: 0px;
-	margin-right: -400px;
-}
-
-#menu-management .nav-tab {
-	margin-bottom: 0;
-	font-size: 14px;
-}
-
 #select-nav-menu-container {
 	text-align: right;
 	padding: 0 10px 3px 10px;
@@ -7090,7 +7134,8 @@
 }
 
 #menu-to-edit {
-	padding: 1em 0;
+	margin: 0;
+	padding: 0.1em 0;
 }
 
 .menu ul {
@@ -7106,7 +7151,7 @@
 	clear:both;
 	line-height:1.5em;
 	position:relative;
-	margin: 13px 0 0 0;
+	margin-top: 9px;
 }
 
 .menu-item-handle {
@@ -7333,36 +7378,25 @@
 	text-align: right;
 	float: right;
 	line-height: 23px;
-	margin: 5px 0 1px;
+	margin: 2px 0 1px;
 }
 
-.nav-menus-php .major-publishing-actions .delete-action {
-	vertical-align: middle;
-	text-align: left;
-	float: left;
-	padding-right: 15px;
-	margin-top: 5px;
+.nav-menus-php .blank-slate .auto-add-pages,
+.nav-menus-php .blank-slate .settings-header,
+.nav-menus-php .blank-slate dt,
+.nav-menus-php .blank-slate .auto-add-pages {
+	display: none;
 }
 
-.menu-name-label span,
-.auto-add-pages label {
-	font-size: 12px;
-	font-style: normal;
+.nav-menus-php .delete-action {
+	float: left;
+	margin-top: 2px;
 }
 
-.menu-name-label {
-	margin-right: 15px;
+.nav-menus-php .delete-action a {
+	color: #999;
 }
 
-.auto-add-pages input {
-	margin-top: 0;
-}
-
-.auto-add-pages {
-	margin-top: 4px;
-	float: left;
-}
-
 .nav-menus-php .submitbox .submitcancel {
 	border-bottom: 1px solid;
 	padding: 1px 2px;
