Index: src/wp-admin/includes/nav-menu.php
===================================================================
--- src/wp-admin/includes/nav-menu.php	(revision 40669)
+++ src/wp-admin/includes/nav-menu.php	(working copy)
@@ -1031,9 +1031,10 @@
 	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 ( ! isset( $_POST['menu-item-title'][ $_key ] ) || '' == $_POST['menu-item-title'][ $_key ] )
+			// Menu item title should be set but can be empty
+			if ( ! isset( $_POST['menu-item-title'][ $_key ] ) ) {
 				continue;
+			}
 
 			$args = array();
 			foreach ( $post_fields as $field )
Index: src/wp-includes/nav-menu-template.php
===================================================================
--- src/wp-includes/nav-menu-template.php	(revision 40669)
+++ src/wp-includes/nav-menu-template.php	(working copy)
@@ -345,6 +345,11 @@
 		$classes[] = 'menu-item-type-' . $menu_item->type;
 		$classes[] = 'menu-item-object-' . $menu_item->object;
 
+		// This menu item has no label
+		if ( '(no label)' == $menu_item->post_title ) {
+			$classes[] = 'no-title';
+		}
+
 		// This menu item is set as the 'Front Page'.
 		if ( 'post_type' === $menu_item->type && $front_page_id === (int) $menu_item->object_id ) {
 			$classes[] = 'menu-item-home';
Index: src/wp-includes/nav-menu.php
===================================================================
--- src/wp-includes/nav-menu.php	(revision 40669)
+++ src/wp-includes/nav-menu.php	(working copy)
@@ -434,8 +434,10 @@
 			}
 		}
 
-		if ( $args['menu-item-title'] == $original_title )
-			$args['menu-item-title'] = '';
+		// Sets default label if no label is set
+		if ( $args['menu-item-title'] == '' ) {
+			$args['menu-item-title'] =  _x( '(no label)', 'missing menu item navigation label' );
+		}
 
 		// hack to get wp to create a post object when too many properties are empty
 		if ( '' ==  $args['menu-item-title'] && '' == $args['menu-item-description'] )
