Index: wp-admin/css/nav-menu.dev.css
===================================================================
--- wp-admin/css/nav-menu.dev.css	(Revision 18275)
+++ wp-admin/css/nav-menu.dev.css	(Arbeitskopie)
@@ -86,7 +86,7 @@
 	border-top: 1px solid;
 }
 
-#post-body div.updated {
+#post-body div.updated, #post-body div.error {
 	margin: 0;
 }
 
Index: wp-admin/includes/nav-menu.php
===================================================================
--- wp-admin/includes/nav-menu.php	(Revision 18275)
+++ wp-admin/includes/nav-menu.php	(Arbeitskopie)
@@ -1103,15 +1103,20 @@
 		else
 			return new WP_Error( 'menu_walker_not_exist', sprintf( __('The Walker class named <strong>%s</strong> does not exist.'), $walker_class_name ) );
 
-		$some_pending_menu_items = false;
+		$some_pending_menu_items = $some_invalid_menu_items = false;
 		foreach( (array) $menu_items as $menu_item ) {
 			if ( isset( $menu_item->post_status ) && 'draft' == $menu_item->post_status )
 				$some_pending_menu_items = true;
+			if ( ! empty( $menu_item->_invalid ) )
+				$some_invalid_menu_items = true;
 		}
 
 		if ( $some_pending_menu_items )
 			$result .= '<div class="updated inline"><p>' . __('Click Save Menu to make pending menu items public.') . '</p></div>';
 
+		if ( $some_invalid_menu_items )
+			$result .= '<div class="error inline"><p>' . __('There are some invalid menu items. Please check or delete them.') . '</p></div>';	
+
 		$result .= '<ul class="menu" id="menu-to-edit"> ';
 		$result .= walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $menu_items), 0, (object) array('walker' => $walker ) );
 		$result .= ' </ul> ';
Index: wp-includes/nav-menu.php
===================================================================
--- wp-includes/nav-menu.php	(Revision 18275)
+++ wp-includes/nav-menu.php	(Arbeitskopie)
@@ -528,8 +528,8 @@
 	}
 
 	$items = array_map( 'wp_setup_nav_menu_item', $items );
-	
-	if ( ! in_array( $args['post_status'], array( 'draft', 'any' ) ) ) 
+
+	if ( ! is_admin() ) // Remove invalid items only in frontend
 		$items = array_filter( $items, '_is_valid_nav_menu_item' );
 
 	if ( ARRAY_A == $args['output'] ) {
@@ -583,7 +583,6 @@
 					$menu_item->type_label = $object->labels->singular_name;
 				} else {
 					$menu_item->type_label = $menu_item->object;
-					$menu_item->post_status = 'draft';
 					$menu_item->_invalid = true;
 				}
 
@@ -599,7 +598,6 @@
 					$menu_item->type_label = $object->labels->singular_name;
 				} else {
 					$menu_item->type_label = $menu_item->object;
-					$menu_item->post_status = 'draft';
 					$menu_item->_invalid = true;
 				}
 
