Index: wp-admin/includes/class-wp-terms-list-table.php
===================================================================
--- wp-admin/includes/class-wp-terms-list-table.php	(revision 19415)
+++ wp-admin/includes/class-wp-terms-list-table.php	(working copy)
@@ -283,13 +283,15 @@
 	}
 
 	function column_posts( $tag ) {
-		global $taxonomy, $post_type;
+		global $taxonomy;
 
 		$count = number_format_i18n( $tag->count );
 
 		$tax = get_taxonomy( $taxonomy );
 
+		$post_type = get_current_screen()->post_type;
 		$ptype_object = get_post_type_object( $post_type );
+
 		if ( ! $ptype_object->show_ui )
 			return $count;
 
Index: wp-admin/includes/screen.php
===================================================================
--- wp-admin/includes/screen.php	(revision 19415)
+++ wp-admin/includes/screen.php	(working copy)
@@ -445,37 +445,26 @@
 
 		$base = $id;
 
-		// If this is the current screen, see if we can be more accurate for post types and taxonomies.
-		if ( ! $hook_name ) {
-			if ( isset( $_REQUEST['post_type'] ) )
-				$post_type = post_type_exists( $_REQUEST['post_type'] ) ? $_REQUEST['post_type'] : false;
-			if ( isset( $_REQUEST['taxonomy'] ) )
-				$taxonomy = taxonomy_exists( $_REQUEST['taxonomy'] ) ? $_REQUEST['taxonomy'] : false;
+		// If post_type or taxonomy haven't been determined yet, check further.
+		if ( ! $post_type && isset( $_REQUEST['post_type'] ) )
+			$post_type = post_type_exists( $_REQUEST['post_type'] ) ? $_REQUEST['post_type'] : false;
+		if ( ! $taxonomy && isset( $_REQUEST['taxonomy'] ) )
+			$taxonomy = taxonomy_exists( $_REQUEST['taxonomy'] ) ? $_REQUEST['taxonomy'] : false;
 
-			switch ( $base ) {
-				case 'post' :
-					if ( isset( $_GET['post'] ) )
-						$post_id = (int) $_GET['post'];
-					elseif ( isset( $_POST['post_ID'] ) )
-						$post_id = (int) $_POST['post_ID'];
-					else
-						$post_id = 0;
-
-					if ( $post_id ) {
-						$post = get_post( $post_id );
-						if ( $post )
-							$post_type = $post->post_type;
-					}
-					break;
-				case 'edit-tags' :
-					if ( null === $post_type && is_object_in_taxonomy( 'post', $taxonomy ? $taxonomy : 'post_tag' ) )
-						$post_type = 'post';
-					break;
-			}
- 		}
-
 		switch ( $base ) {
 			case 'post' :
+				if ( isset( $_GET['post'] ) )
+					$post_id = (int) $_GET['post'];
+				elseif ( isset( $_POST['post_ID'] ) )
+					$post_id = (int) $_POST['post_ID'];
+				else
+					$post_id = 0;
+
+				if ( $post_id ) {
+					$post = get_post( $post_id );
+					if ( $post )
+						$post_type = $post->post_type;
+				}
 				if ( null === $post_type )
 					$post_type = 'post';
 				$id = $post_type;
@@ -488,6 +477,8 @@
 			case 'edit-tags' :
 				if ( null === $taxonomy )
 					$taxonomy = 'post_tag';
+				if ( null === $post_type && is_object_in_taxonomy( 'post', $taxonomy ? $taxonomy : 'post_tag' ) )
+					$post_type = 'post';
 				$id = 'edit-' . $taxonomy;
 				break;
 			case 'upload' :
