diff --git src/wp-admin/includes/plugin.php src/wp-admin/includes/plugin.php
index a01e104757..365ad547d6 100644
--- src/wp-admin/includes/plugin.php
+++ src/wp-admin/includes/plugin.php
@@ -1670,22 +1670,70 @@ function remove_menu_page( $menu_slug ) {
  *
  * @global array $submenu
  *
- * @param string $menu_slug    The slug for the parent menu.
- * @param string $submenu_slug The slug of the submenu.
+ * @param string $parent_slug    The slug for the parent menu.
+ * @param string $menu_slug The slug of the submenu.
  * @return array|bool The removed submenu on success, false if not found.
  */
-function remove_submenu_page( $menu_slug, $submenu_slug ) {
-	global $submenu;
+function remove_submenu_page( $parent_slug, $menu_slug ) {
+	
+	global $submenu, $_wp_real_parent_file;
 
-	if ( ! isset( $submenu[ $menu_slug ] ) ) {
+	$menu_slug   = plugin_basename( $menu_slug );
+	$parent_slug = plugin_basename( $parent_slug );
+	
+	if ( ! isset( $submenu[ $parent_slug ] ) ) {
 		return false;
 	}
 
-	foreach ( $submenu[ $menu_slug ] as $i => $item ) {
-		if ( $submenu_slug == $item[2] ) {
-			unset( $submenu[ $menu_slug ][ $i ] );
-			return $item;
+	$removed_submenu = null;
+	
+	foreach ( $submenu[ $parent_slug ] as $i => $item ) {
+		if ( $menu_slug == $item[2] ) {
+
+			unset( $submenu[ $parent_slug ][ $i ] );
+			$removed_submenu = $item;
+			break;
+			
+		}
+	}
+
+	if ( is_null( $removed_submenu ) ) {
+		return false;
+	}
+
+	if ( isset( $_wp_real_parent_file[ $parent_slug ] ) ) {
+        $parent_slug = $_wp_real_parent_file[ $parent_slug ];
+    }
+
+	if ( isset( $_wp_submenu_nopriv[ $parent_slug ][ $menu_slug ] ) ) {
+		unset( $_wp_submenu_nopriv[ $parent_slug ][ $menu_slug ] );
+	}
+
+	$hookname = get_plugin_page_hookname( $menu_slug, $parent_slug );
+
+	// Remove the callback function attached to the submenu.
+	remove_all_actions( $hookname );
+
+	if ( isset( $_registered_pages[ $hookname ] ) ) {
+		unset( $_registered_pages[ $hookname ] );
+	}
+
+	if ( 'tools.php' == $parent_slug ) {
+
+		$edit_plugin_page_hook_name = get_plugin_page_hookname( $menu_slug, 'edit.php' );
+
+		if ( isset( $_registered_pages[ $edit_plugin_page_hook_name ] ) ) {
+
+			unset( $_registered_pages[ $edit_plugin_page_hook_name ] );
+
 		}
+
+	}
+	
+	if ( isset( $_parent_pages[ $menu_slug ] ) ) {
+
+		unset( $_parent_pages[ $menu_slug ] );
+
 	}
 
 	return false;
