Index: wp-admin/includes/template.php
===================================================================
--- wp-admin/includes/template.php	(revision 17436)
+++ wp-admin/includes/template.php	(working copy)
@@ -2042,7 +2042,7 @@
  * @param string $id Screen id, optional.
  */
 function set_current_screen( $id =  '' ) {
-	global $current_screen, $hook_suffix, $typenow, $taxnow;
+	global $current_screen, $hook_suffix, $typenow, $taxnow, $post_id;
 
 	$action = '';
 
@@ -2083,13 +2083,23 @@
 		$current_screen->id .= '-' . $typenow;
 		$current_screen->post_type = $typenow;
 	} elseif ( 'post' == $current_screen->id ) {
+		$post_id = isset($_GET['post']) ? (int) $_GET['post'] : 0;
+		$post_id = isset($_POST['post_ID']) ? (int) $_POST['post_ID'] : $post_id;
+
+		if ( $post_id ) {
+			$post = get_post( $post_id );
+			$typenow = $post->post_type;
+		}
+
 		if ( empty($typenow) )
 			$typenow = 'post';
-		$current_screen->id = $typenow;
-		$current_screen->post_type = $typenow;
+
+		$current_screen->id = $current_screen->post_type = $typenow;
 	} elseif ( 'edit-tags' == $current_screen->id ) {
 		if ( empty($taxnow) )
 			$taxnow = 'post_tag';
+		if ( empty($typenow) )
+			$typenow = 'post';
 		$current_screen->id = 'edit-' . $taxnow;
 		$current_screen->taxonomy = $taxnow;
 	}
Index: wp-admin/post.php
===================================================================
--- wp-admin/post.php	(revision 17436)
+++ wp-admin/post.php	(working copy)
@@ -16,34 +16,9 @@
 
 wp_reset_vars(array('action', 'safe_mode', 'withcomments', 'posts', 'content', 'edited_post_title', 'comment_error', 'profile', 'trackback_url', 'excerpt', 'showcomments', 'commentstart', 'commentend', 'commentorder'));
 
-if ( isset($_GET['post']) )
-	$post_id = (int) $_GET['post'];
-elseif ( isset($_POST['post_ID']) )
-	$post_id = (int) $_POST['post_ID'];
-else
-	$post_id = 0;
-$post_ID = $post_id;
-$post = null;
-$post_type_object = null;
-$post_type = null;
-if ( $post_id ) {
-	$post = get_post($post_id);
-	if ( $post ) {
-		$post_type_object = get_post_type_object($post->post_type);
-		if ( $post_type_object ) {
-			$post_type = $post->post_type;
-			$current_screen->post_type = $post->post_type;
-			$current_screen->id = $current_screen->post_type;
-		}
-	}
-} elseif ( isset($_POST['post_type']) ) {
-	$post_type_object = get_post_type_object($_POST['post_type']);
-	if ( $post_type_object ) {
-		$post_type = $post_type_object->name;
-		$current_screen->post_type = $post_type;
-		$current_screen->id = $current_screen->post_type;
-	}
-}
+$post = get_post( $post_id );
+$post_type_object = get_post_type_object( $current_screen->post_type );
+$post_type = $current_screen->post_type;
 
 /**
  * Redirect to previous page.
Index: wp-admin/admin.php
===================================================================
--- wp-admin/admin.php	(revision 17436)
+++ wp-admin/admin.php	(working copy)
@@ -88,13 +88,13 @@
 	$plugin_page = plugin_basename($plugin_page);
 }
 
-if ( isset($_GET['post_type']) )
-	$typenow = sanitize_key($_GET['post_type']);
+if ( isset($_REQUEST['post_type']) )
+	$typenow = sanitize_key( $_REQUEST['post_type'] );
 else
 	$typenow = '';
 
 if ( isset($_GET['taxonomy']) )
-	$taxnow = sanitize_key($_GET['taxonomy']);
+	$taxnow = sanitize_key( $_GET['taxonomy'] );
 else
 	$taxnow = '';
 
