Index: wp-admin/admin-ajax.php
===================================================================
--- wp-admin/admin-ajax.php	(revision 15709)
+++ wp-admin/admin-ajax.php	(working copy)
@@ -781,7 +781,37 @@
 
 	require_once ABSPATH . 'wp-admin/includes/nav-menu.php';
 
-	$item_ids = wp_save_nav_menu_items( 0, $_POST['menu-item'] );
+	/**
+	 * 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.
+	 */
+	$menu_items_data = (array) $_POST['menu-item'];
+	$menu_item_data = array_shift( $menu_items_data ); 
+	if ( 
+		! empty( $menu_item_data['menu-item-type'] ) && 
+		'custom' != $menu_item_data['menu-item-type'] &&
+		! empty( $menu_item_data['menu-item-object-id'] )
+	) {
+		switch( $menu_item_data['menu-item-type'] ) {
+			case 'post_type' :
+				$_object = get_post( $menu_item_data['menu-item-object-id'] );
+			break;
+
+			case 'taxonomy' :
+				$_object = get_term( $menu_item_data['menu-item-object-id'], $menu_item_data['menu-item-object'] ); 
+			break;
+		}
+
+		$_menu_items = array_map( 'wp_setup_nav_menu_item', array( $_object ) ); 
+		$_menu_item = array_shift( $_menu_items );
+
+		/** Restore the missing menu item properties **/
+		$menu_item_data['menu-item-description'] = $_menu_item->description;
+
+		$menu_items_data = array( $menu_item_data );
+	}
+
+	$item_ids = wp_save_nav_menu_items( 0, $menu_items_data );
 	if ( is_wp_error( $item_ids ) )
 		die('-1');
 
Index: wp-admin/includes/nav-menu.php
===================================================================
--- wp-admin/includes/nav-menu.php	(revision 15709)
+++ wp-admin/includes/nav-menu.php	(working copy)
@@ -249,7 +249,6 @@
 		$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-description" name="menu-item[' . $possible_object_id . '][menu-item-description]" value="'. esc_attr( $item->description ) .'" />';
 		$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 ) .'" />';
 	}
