Index: menu.php
===================================================================
--- menu.php	(revision 17577)
+++ menu.php	(working copy)
@@ -112,7 +112,16 @@
 	// Check if it should be a submenu.
 	if ( $ptype_obj->show_in_menu !== true )
 		continue;
-	$ptype_menu_position = is_int( $ptype_obj->menu_position ) ? $ptype_obj->menu_position : ++$_wp_last_object_menu; // If we're to use $_wp_last_object_menu, increment it first.
+	
+	if( is_int($ptype_obj->menu_position) && $ptype_obj->menu_position == $_wp_last_object_menu) {
+		$ptype_menu_position = $ptype_obj->menu_position;
+		$_wp_last_object_menu++;
+	} elseif(is_int($ptype_obj->menu_position) && isset($menu[$ptype_obj->menu_position])) {
+		$ptype_menu_position = $ptype_obj->menu_position+1;	
+	} else {
+		$ptype_menu_position = $ptype_obj->menu_position;
+	}
+	
 	$ptype_for_id = sanitize_html_class( $ptype );
 	if ( is_string( $ptype_obj->menu_icon ) ) {
 		$menu_icon   = esc_url( $ptype_obj->menu_icon );
