Index: wp-admin/menu.php
===================================================================
--- wp-admin/menu.php	(revisione 36700)
+++ wp-admin/menu.php	(copia locale)
@@ -94,7 +94,15 @@
 	// 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.
+	// Adjust the position if it's already occupied
+	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 );
 
 	$menu_icon = 'dashicons-admin-post';
