diff --git a/src/wp-admin/includes/menu.php b/src/wp-admin/includes/menu.php
index cea9c758f1..4d720f2626 100644
--- a/src/wp-admin/includes/menu.php
+++ b/src/wp-admin/includes/menu.php
@@ -185,6 +185,25 @@ foreach ( $menu as $id => $data ) {
 }
 unset( $id, $data, $subs, $first_sub );
 
+// Hide the tools page if it's going to be empty.
+$manage_taxonomies = false;
+if ( current_user_can( 'import' ) ) {
+	$cats = get_taxonomy('category');
+	$tags = get_taxonomy('post_tag');
+	if ( current_user_can($cats->cap->manage_terms) || current_user_can($tags->cap->manage_terms) ) {
+		$manage_taxonomies = true;
+	}
+}
+if ( ! isset( $submenu['tools.php'] ) && ! $manage_taxonomies && ! has_action( 'tool_box' ) ) {
+	foreach ( $menu as $i => $data ) {
+		if ( 'tools.php' == $data[2] ) {
+			unset( $menu[ $i ] );
+			break;
+		}
+	}
+	unset( $data );
+}
+
 /**
  * @param string $add
  * @param string $class
