Index: wp-includes/nav-menu-template.php
===================================================================
--- wp-includes/nav-menu-template.php	(revision 15364)
+++ wp-includes/nav-menu-template.php	(working copy)
@@ -16,6 +16,13 @@
  */
 class Walker_Nav_Menu extends Walker {
 	/**
+	 * @see Walker::start_el()
+	 * @since 3.0.1.
+	 * @var array
+	 */
+	static $_used_menu_item_ids = array();
+
+	/**
 	 * @see Walker::$tree_type
 	 * @since 3.0.0
 	 * @var string
@@ -66,16 +73,23 @@
 	 */
 	function start_el(&$output, $item, $depth, $args) {
 		global $wp_query;
+
 		$indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
 
 		$class_names = $value = '';
 
 		$classes = empty( $item->classes ) ? array() : (array) $item->classes;
+		$classes[] = 'menu-item-' . $item->ID;
 
 		$class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) );
 		$class_names = ' class="' . esc_attr( $class_names ) . '"';
 
-		$output .= $indent . '<li id="menu-item-'. $item->ID . '"' . $value . $class_names .'>';
+		if ( ! in_array( $item->ID, Walker_Nav_Menu::$_used_menu_item_ids ) ) {
+			$output .= $indent . '<li id="menu-item-'. $item->ID . '"' . $value . $class_names .'>';
+			Walker_Nav_Menu::$_used_menu_item_ids[] = $item->ID;
+		} else {
+			$output .= $indent . '<li' . $value . $class_names .'>';
+		}
 
 		$attributes  = ! empty( $item->attr_title ) ? ' title="'  . esc_attr( $item->attr_title ) .'"' : '';
 		$attributes .= ! empty( $item->target )     ? ' target="' . esc_attr( $item->target     ) .'"' : '';
