diff --git src/wp-admin/edit-tag-form.php src/wp-admin/edit-tag-form.php
index b8d2340..2579d0e 100644
--- src/wp-admin/edit-tag-form.php
+++ src/wp-admin/edit-tag-form.php
@@ -7,16 +7,8 @@
  */
 
 // don't load directly
-if ( !defined('ABSPATH') )
-	die('-1');
-
-if ( empty($tag_ID) ) { ?>
-<div class="wrap">
-	<h1><?php echo $tax->labels->edit_item; ?></h1>
-	<div id="message" class="notice notice-warning"><p><strong><?php _e( 'You did not select an item for editing.' ); ?></strong></p></div>
-</div>
-<?php
-	return;
+if ( ! defined( 'ABSPATH' ) ) {
+	die( '-1' );
 }
 
 // Back compat hooks
@@ -27,9 +19,9 @@ if ( 'category' == $taxonomy ) {
 	 * @since 2.1.0
 	 * @deprecated 3.0.0 Use {$taxonomy}_pre_edit_form instead.
 	 *
-	 * @param object $tag Current category term object.
+	 * @param object $term Current category term object.
 	 */
-	do_action( 'edit_category_form_pre', $tag );
+	do_action( 'edit_category_form_pre', $term );
 } elseif ( 'link_category' == $taxonomy ) {
 	/**
 	 * Fires before the Edit Link Category form.
@@ -37,9 +29,9 @@ if ( 'category' == $taxonomy ) {
 	 * @since 2.3.0
 	 * @deprecated 3.0.0 Use {$taxonomy}_pre_edit_form instead.
 	 *
-	 * @param object $tag Current link category term object.
+	 * @param object $term Current link category term object.
 	 */
-	do_action( 'edit_link_category_form_pre', $tag );
+	do_action( 'edit_link_category_form_pre', $term );
 } else {
 	/**
 	 * Fires before the Edit Tag form.
@@ -47,9 +39,9 @@ if ( 'category' == $taxonomy ) {
 	 * @since 2.5.0
 	 * @deprecated 3.0.0 Use {$taxonomy}_pre_edit_form instead.
 	 *
-	 * @param object $tag Current tag term object.
+	 * @param object $term Current tag term object.
 	 */
-	do_action( 'edit_tag_form_pre', $tag );
+	do_action( 'edit_tag_form_pre', $term );
 }
 
 /**
@@ -57,7 +49,7 @@ if ( 'category' == $taxonomy ) {
  */
 wp_reset_vars( array( 'wp_http_referer' ) );
 
-$wp_http_referer = remove_query_arg( array( 'action', 'message', 'tag_ID' ), $wp_http_referer );
+$wp_http_referer = remove_query_arg( array( 'action', 'message', 'term_id' ), $wp_http_referer );
 
 /** Also used by Edit Tags */
 require_once( ABSPATH . 'wp-admin/includes/edit-tag-messages.php' );
@@ -70,10 +62,10 @@ require_once( ABSPATH . 'wp-admin/includes/edit-tag-messages.php' );
  *
  * @since 3.0.0
  *
- * @param object $tag      Current taxonomy term object.
+ * @param object $term     Current taxonomy term object.
  * @param string $taxonomy Current $taxonomy slug.
  */
-do_action( "{$taxonomy}_pre_edit_form", $tag, $taxonomy ); ?>
+do_action( "{$taxonomy}_pre_edit_form", $term, $taxonomy ); ?>
 
 <div class="wrap">
 <h1><?php echo $tax->labels->edit_item; ?></h1>
@@ -103,14 +95,17 @@ do_action( "{$taxonomy}_pre_edit_form", $tag, $taxonomy ); ?>
  */
 do_action( "{$taxonomy}_term_edit_form_tag" );
 ?>>
-<input type="hidden" name="action" value="editedtag" />
-<input type="hidden" name="tag_ID" value="<?php echo esc_attr($tag->term_id) ?>" />
-<input type="hidden" name="taxonomy" value="<?php echo esc_attr($taxonomy) ?>" />
-<?php wp_original_referer_field(true, 'previous'); wp_nonce_field('update-tag_' . $tag_ID); ?>
+<input type="hidden" name="action" value="editedtag"/>
+<input type="hidden" name="tag_ID" value="<?php echo esc_attr( $term_id ) ?>"/>
+<input type="hidden" name="taxonomy" value="<?php echo esc_attr( $taxonomy ) ?>"/>
+<?php
+wp_original_referer_field( true, 'previous' );
+wp_nonce_field( 'update-tag_' . $term_id );
+?>
 	<table class="form-table">
 		<tr class="form-field form-required term-name-wrap">
 			<th scope="row"><label for="name"><?php _ex( 'Name', 'term name' ); ?></label></th>
-			<td><input name="name" id="name" type="text" value="<?php if ( isset( $tag->name ) ) echo esc_attr($tag->name); ?>" size="40" aria-required="true" />
+			<td><input name="name" id="name" type="text" value="<?php if ( isset( $term->name ) ) echo esc_attr($term->name); ?>" size="40" aria-required="true" />
 			<p class="description"><?php _e('The name is how it appears on your site.'); ?></p></td>
 		</tr>
 <?php if ( !global_terms_enabled() ) { ?>
@@ -124,19 +119,19 @@ do_action( "{$taxonomy}_term_edit_form_tag" );
 			 * post URIs and term slugs.
 			 *
 			 * @since 2.6.0
-			 * @since 4.4.0 The `$tag` parameter was added.
+			 * @since 4.4.0 The `$term` parameter was added.
 			 *
 			 * @param string         $slug The editable slug. Will be either a term slug or post URI depending
 			 *                             upon the context in which it is evaluated.
-			 * @param object|WP_Post $tag  Term or WP_Post object.
+			 * @param object|WP_Post $term  Term or WP_Post object.
 			 */
-			$slug = isset( $tag->slug ) ? apply_filters( 'editable_slug', $tag->slug, $tag ) : '';
+			$slug = isset( $term->slug ) ? apply_filters( 'editable_slug', $term->slug, $term ) : '';
 			?>
 			<td><input name="slug" id="slug" type="text" value="<?php echo esc_attr( $slug ); ?>" size="40" />
 			<p class="description"><?php _e('The &#8220;slug&#8221; is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens.'); ?></p></td>
 		</tr>
 <?php } ?>
-<?php if ( is_taxonomy_hierarchical($taxonomy) ) : ?>
+<?php if ( is_taxonomy_hierarchical( $taxonomy ) ) : ?>
 		<tr class="form-field term-parent-wrap">
 			<th scope="row"><label for="parent"><?php _ex( 'Parent', 'term parent' ); ?></label></th>
 			<td>
@@ -147,8 +142,8 @@ do_action( "{$taxonomy}_term_edit_form_tag" );
 					'taxonomy'         => $taxonomy,
 					'name'             => 'parent',
 					'orderby'          => 'name',
-					'selected'         => $tag->parent,
-					'exclude_tree'     => $tag->term_id,
+					'selected'         => $term->parent,
+					'exclude_tree'     => $term->term_id,
 					'hierarchical'     => true,
 					'show_option_none' => __( 'None' ),
 				);
@@ -164,7 +159,7 @@ do_action( "{$taxonomy}_term_edit_form_tag" );
 <?php endif; // is_taxonomy_hierarchical() ?>
 		<tr class="form-field term-description-wrap">
 			<th scope="row"><label for="description"><?php _e( 'Description' ); ?></label></th>
-			<td><textarea name="description" id="description" rows="5" cols="50" class="large-text"><?php echo $tag->description; // textarea_escaped ?></textarea>
+			<td><textarea name="description" id="description" rows="5" cols="50" class="large-text"><?php echo $term->description; // textarea_escaped ?></textarea>
 			<p class="description"><?php _e('The description is not prominent by default; however, some themes may show it.'); ?></p></td>
 		</tr>
 		<?php
@@ -176,9 +171,9 @@ do_action( "{$taxonomy}_term_edit_form_tag" );
 			 * @since 2.9.0
 			 * @deprecated 3.0.0 Use {$taxonomy}_edit_form_fields instead.
 			 *
-			 * @param object $tag Current category term object.
+			 * @param object $term Current category term object.
 			 */
-			do_action( 'edit_category_form_fields', $tag );
+			do_action( 'edit_category_form_fields', $term );
 		} elseif ( 'link_category' == $taxonomy ) {
 			/**
 			 * Fires after the Edit Link Category form fields are displayed.
@@ -186,9 +181,9 @@ do_action( "{$taxonomy}_term_edit_form_tag" );
 			 * @since 2.9.0
 			 * @deprecated 3.0.0 Use {$taxonomy}_edit_form_fields instead.
 			 *
-			 * @param object $tag Current link category term object.
+			 * @param object $term Current link category term object.
 			 */
-			do_action( 'edit_link_category_form_fields', $tag );
+			do_action( 'edit_link_category_form_fields', $term );
 		} else {
 			/**
 			 * Fires after the Edit Tag form fields are displayed.
@@ -196,9 +191,9 @@ do_action( "{$taxonomy}_term_edit_form_tag" );
 			 * @since 2.9.0
 			 * @deprecated 3.0.0 Use {$taxonomy}_edit_form_fields instead.
 			 *
-			 * @param object $tag Current tag term object.
+			 * @param object $term Current tag term object.
 			 */
-			do_action( 'edit_tag_form_fields', $tag );
+			do_action( 'edit_tag_form_fields', $term );
 		}
 		/**
 		 * Fires after the Edit Term form fields are displayed.
@@ -208,20 +203,20 @@ do_action( "{$taxonomy}_term_edit_form_tag" );
 		 *
 		 * @since 3.0.0
 		 *
-		 * @param object $tag      Current taxonomy term object.
+		 * @param object $term     Current taxonomy term object.
 		 * @param string $taxonomy Current taxonomy slug.
 		 */
-		do_action( "{$taxonomy}_edit_form_fields", $tag, $taxonomy );
+		do_action( "{$taxonomy}_edit_form_fields", $term, $taxonomy );
 		?>
 	</table>
 <?php
 // Back compat hooks
 if ( 'category' == $taxonomy ) {
 	/** This action is documented in wp-admin/edit-tags.php */
-	do_action( 'edit_category_form', $tag );
+	do_action( 'edit_category_form', $term );
 } elseif ( 'link_category' == $taxonomy ) {
 	/** This action is documented in wp-admin/edit-tags.php */
-	do_action( 'edit_link_category_form', $tag );
+	do_action( 'edit_link_category_form', $term );
 } else {
 	/**
 	 * Fires at the end of the Edit Term form.
@@ -229,9 +224,9 @@ if ( 'category' == $taxonomy ) {
 	 * @since 2.5.0
 	 * @deprecated 3.0.0 Use {$taxonomy}_edit_form instead.
 	 *
-	 * @param object $tag Current taxonomy term object.
+	 * @param object $term Current taxonomy term object.
 	 */
-	do_action( 'edit_tag_form', $tag );
+	do_action( 'edit_tag_form', $term );
 }
 /**
  * Fires at the end of the Edit Term form for all taxonomies.
@@ -240,10 +235,10 @@ if ( 'category' == $taxonomy ) {
  *
  * @since 3.0.0
  *
- * @param object $tag      Current taxonomy term object.
+ * @param object $term      Current taxonomy term object.
  * @param string $taxonomy Current taxonomy slug.
  */
-do_action( "{$taxonomy}_edit_form", $tag, $taxonomy );
+do_action( "{$taxonomy}_edit_form", $term, $taxonomy );
 
 submit_button( __('Update') );
 ?>
diff --git src/wp-admin/edit-tags.php src/wp-admin/edit-tags.php
index 846928c..50a2ec5 100644
--- src/wp-admin/edit-tags.php
+++ src/wp-admin/edit-tags.php
@@ -150,21 +150,18 @@ case 'bulk-delete':
 	break;
 
 case 'edit':
-	$title = $tax->labels->edit_item;
-
 	if ( ! isset( $_REQUEST['tag_ID'] ) ) {
 		break;
 	}
 
-	$tag_ID = (int) $_REQUEST['tag_ID'];
+	$term_id = (int) $_REQUEST['tag_ID'];
+	$term    = get_term( $term_id );
 
-	$tag = get_term( $tag_ID, $taxonomy, OBJECT, 'edit' );
-	if ( ! $tag )
+	if ( ! $term instanceof WP_Term ) {
 		wp_die( __( 'You attempted to edit an item that doesn&#8217;t exist. Perhaps it was deleted?' ) );
-	require_once( ABSPATH . 'wp-admin/admin-header.php' );
-	include( ABSPATH . 'wp-admin/edit-tag-form.php' );
-	include( ABSPATH . 'wp-admin/admin-footer.php' );
+	}
 
+	wp_redirect( esc_url_raw( get_edit_term_link( $term_id, $taxonomy, $post_type ) ) );
 	exit;
 
 case 'editedtag':
diff --git src/wp-admin/term.php src/wp-admin/term.php
new file mode 100644
index 0000000..53cb9a1
--- /dev/null
+++ src/wp-admin/term.php
@@ -0,0 +1,67 @@
+<?php
+/**
+ * Edit Term Administration Screen.
+ *
+ * @package    WordPress
+ * @subpackage Administration
+ */
+
+/** WordPress Administration Bootstrap */
+require_once( dirname( __FILE__ ) . '/admin.php' );
+
+if ( empty( $_REQUEST['term_id'] ) ) {
+	$sendback = admin_url( 'edit-tags.php' );
+	if ( ! empty( $taxnow ) ) {
+		$sendback = add_query_arg( array( 'taxonomy' => $taxnow ), $sendback );
+	}
+	wp_redirect( esc_url( $sendback ) );
+	exit;
+}
+
+$term_id = absint( $_REQUEST['term_id'] );
+$term    = get_term( $term_id, $taxnow, OBJECT, 'edit' );
+
+if ( ! $term instanceof WP_Term ) {
+	wp_die( __( 'You attempted to edit an item that doesn&#8217;t exist. Perhaps it was deleted?' ) );
+}
+
+$tax      = get_taxonomy( $term->taxonomy );
+$taxonomy = $tax->name;
+$title    = $tax->labels->edit_item;
+
+if ( ! in_array( $taxonomy, get_taxonomies( array( 'show_ui' => true ) ) ) ||
+     ! current_user_can( $tax->cap->manage_terms )
+) {
+	wp_die(
+		'<h1>' . __( 'Cheatin&#8217; uh?' ) . '</h1>' .
+		'<p>' . __( 'You are not allowed to manage this item.' ) . '</p>',
+		403
+	);
+}
+
+$post_type = get_current_screen()->post_type;
+
+// Default to the first object_type associated with the taxonomy if no post type was passed.
+if ( empty( $post_type ) ) {
+	$post_type = reset( $tax->object_type );
+}
+
+if ( 'post' != $post_type ) {
+	$parent_file  = ( 'attachment' == $post_type ) ? 'upload.php' : "edit.php?post_type=$post_type";
+	$submenu_file = "edit-tags.php?taxonomy=$taxonomy&amp;post_type=$post_type";
+} elseif ( 'link_category' == $taxonomy ) {
+	$parent_file  = 'link-manager.php';
+	$submenu_file = 'edit-tags.php?taxonomy=link_category';
+} else {
+	$parent_file  = 'edit.php';
+	$submenu_file = "edit-tags.php?taxonomy=$taxonomy";
+}
+
+get_current_screen()->set_screen_reader_content( array(
+	'heading_pagination' => $tax->labels->items_list_navigation,
+	'heading_list'       => $tax->labels->items_list,
+) );
+
+require_once( ABSPATH . 'wp-admin/admin-header.php' );
+include( ABSPATH . 'wp-admin/edit-tag-form.php' );
+include( ABSPATH . 'wp-admin/admin-footer.php' );
diff --git src/wp-includes/link-template.php src/wp-includes/link-template.php
index 8476314..2fdd2af 100644
--- src/wp-includes/link-template.php
+++ src/wp-includes/link-template.php
@@ -926,9 +926,8 @@ function get_edit_term_link( $term_id, $taxonomy, $object_type = '' ) {
 	}
 
 	$args = array(
-		'action' => 'edit',
 		'taxonomy' => $taxonomy,
-		'tag_ID' => $term->term_id,
+		'term_id'  => $term->term_id,
 	);
 
 	if ( $object_type ) {
@@ -938,7 +937,7 @@ function get_edit_term_link( $term_id, $taxonomy, $object_type = '' ) {
 	}
 
 	if ( $tax->show_ui ) {
-		$location = add_query_arg( $args, admin_url( 'edit-tags.php' ) );
+		$location = add_query_arg( $args, admin_url( 'term.php' ) );
 	} else {
 		$location = '';
 	}
