Index: wp-admin/includes/screen.php
===================================================================
--- wp-admin/includes/screen.php	(revision 19080)
+++ wp-admin/includes/screen.php	(working copy)
@@ -179,6 +179,8 @@
  * @return string HTML for the screen icon.
  */
 function get_screen_icon( $screen = '' ) {
+	global $typenow;
+
 	if ( empty( $screen ) )
 		$screen = get_current_screen();
 	elseif ( is_string( $screen ) )
@@ -192,11 +194,16 @@
 		else
 			$icon_id = $screen->base;
 
-		if ( 'page' == $screen->post_type )
+		if ( $screen->post_type )
+			$post_type = $screen->post_type;
+		else
+			$post_type = $typenow;
+
+		if ( 'page' == $post_type )
 			$icon_id = 'edit-pages';
 
-		if ( $screen->post_type )
-			$class .= ' ' . sanitize_html_class( 'icon32-posts-' . $screen->post_type );
+		if ( $post_type )
+			$class .= ' ' . sanitize_html_class( 'icon32-posts-' . $post_type );
 	}
 
 	return '<div id="icon-' . esc_attr( $icon_id ) . '" class="' . $class . '"><br /></div>';
@@ -524,8 +531,15 @@
 	function set_current_screen() {
 		global $current_screen, $taxnow, $typenow;
 		$current_screen = $this;
-		$taxnow = $this->taxonomy;
-		$typenow = $this->post_type;
+		switch ( $this->base ) {
+			case 'edit-tags' :
+				$taxnow = $this->taxonomy;
+				// Fall through.
+			case 'edit' :
+			case 'post' :
+				$typenow = $this->post_type;
+				break;
+		}
 		$current_screen = apply_filters( 'current_screen', $current_screen );
 	}
 
