Index: wp-admin/includes/nav-menu.php
===================================================================
--- wp-admin/includes/nav-menu.php	(revision 18736)
+++ wp-admin/includes/nav-menu.php	(working copy)
@@ -260,14 +260,8 @@
 		// Menu item hidden fields
 		$output .= '<input type="hidden" class="menu-item-db-id" name="menu-item[' . $possible_object_id . '][menu-item-db-id]" value="' . $possible_db_id . '" />';
 		$output .= '<input type="hidden" class="menu-item-object" name="menu-item[' . $possible_object_id . '][menu-item-object]" value="'. esc_attr( $item->object ) .'" />';
-		$output .= '<input type="hidden" class="menu-item-parent-id" name="menu-item[' . $possible_object_id . '][menu-item-parent-id]" value="'. esc_attr( $item->menu_item_parent ) .'" />';
 		$output .= '<input type="hidden" class="menu-item-type" name="menu-item[' . $possible_object_id . '][menu-item-type]" value="'. esc_attr( $item->type ) .'" />';
-		$output .= '<input type="hidden" class="menu-item-title" name="menu-item[' . $possible_object_id . '][menu-item-title]" value="'. esc_attr( $item->title ) .'" />';
 		$output .= '<input type="hidden" class="menu-item-url" name="menu-item[' . $possible_object_id . '][menu-item-url]" value="'. esc_attr( $item->url ) .'" />';
-		$output .= '<input type="hidden" class="menu-item-target" name="menu-item[' . $possible_object_id . '][menu-item-target]" value="'. esc_attr( $item->target ) .'" />';
-		$output .= '<input type="hidden" class="menu-item-attr_title" name="menu-item[' . $possible_object_id . '][menu-item-attr_title]" value="'. esc_attr( $item->attr_title ) .'" />';
-		$output .= '<input type="hidden" class="menu-item-classes" name="menu-item[' . $possible_object_id . '][menu-item-classes]" value="'. esc_attr( implode( ' ', $item->classes ) ) .'" />';
-		$output .= '<input type="hidden" class="menu-item-xfn" name="menu-item[' . $possible_object_id . '][menu-item-xfn]" value="'. esc_attr( $item->xfn ) .'" />';
 	}
 }
 
Index: wp-admin/admin-ajax.php
===================================================================
--- wp-admin/admin-ajax.php	(revision 18736)
+++ wp-admin/admin-ajax.php	(working copy)
@@ -757,8 +757,7 @@
 	require_once ABSPATH . 'wp-admin/includes/nav-menu.php';
 
 	// For performance reasons, we omit some object properties from the checklist.
-	// The following is a hacky way to restore them when adding non-custom items.
-
+	// The following restores them when adding non-custom items.
 	$menu_items_data = array();
 	foreach ( (array) $_POST['menu-item'] as $menu_item_data ) {
 		if (
@@ -769,17 +768,21 @@
 			switch( $menu_item_data['menu-item-type'] ) {
 				case 'post_type' :
 					$_object = get_post( $menu_item_data['menu-item-object-id'] );
-				break;
-
+					break;
 				case 'taxonomy' :
 					$_object = get_term( $menu_item_data['menu-item-object-id'], $menu_item_data['menu-item-object'] );
-				break;
+					break;
 			}
 
-			$_menu_items = array_map( 'wp_setup_nav_menu_item', array( $_object ) );
-			$_menu_item = array_shift( $_menu_items );
+			$_menu_item = wp_setup_nav_menu_item( $_object );
 
 			// Restore the missing menu item properties
+			$menu_item_data['menu-item-parent-id']   = $_menu_item->menu_item_parent;
+			$menu_item_data['menu-item-title']       = $_menu_item->title;
+			$menu_item_data['menu-item-target']      = $_menu_item->target;
+			$menu_item_data['menu-item-attr-title']  = $_menu_item->attr_title;
+			$menu_item_data['menu-item-classes']     = implode( ' ', $_menu_item->classes );
+			$menu_item_data['menu-item-xfn']         = $_menu_item->xfn;
 			$menu_item_data['menu-item-description'] = $_menu_item->description;
 		}
 
