Index: wp-admin/includes/screen.php
===================================================================
--- wp-admin/includes/screen.php	(revision 19264)
+++ wp-admin/includes/screen.php	(working copy)
@@ -447,10 +447,10 @@
 
 		// 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_exists( $_REQUEST['post_type'] ) )
-				$post_type = $_REQUEST['post_type'];
-			if ( isset( $_REQUEST['taxonomy'] ) && taxonomy_exists( $_REQUEST['taxonomy'] ) )
-				$taxonomy = $_REQUEST['taxonomy'];
+			if ( isset( $_REQUEST['post_type'] ) )
+				$post_type = post_type_exists( $_REQUEST['post_type'] ) ? $_REQUEST['post_type'] : '_invalid';
+			if ( isset( $_REQUEST['taxonomy'] ) )
+				$taxonomy = taxonomy_exists( $_REQUEST['taxonomy'] ) ? $_REQUEST['taxonomy'] : '_invalid';
 
 			switch ( $base ) {
 				case 'post' :
Index: wp-admin/edit.php
===================================================================
--- wp-admin/edit.php	(revision 19264)
+++ wp-admin/edit.php	(working copy)
@@ -9,17 +9,15 @@
 /** WordPress Administration Bootstrap */
 require_once( './admin.php' );
 
-if ( !isset($_GET['post_type']) )
-	$post_type = 'post';
-elseif ( in_array( $_GET['post_type'], get_post_types( array('show_ui' => true ) ) ) )
-	$post_type = $_GET['post_type'];
-else
-	wp_die( __('Invalid post type') );
+if ( ! $typenow )
+	wp_die( __( 'Invalid post type' ) );
 
-$_GET['post_type'] = $post_type;
-
+$post_type = $typenow;
 $post_type_object = get_post_type_object( $post_type );
 
+if ( ! $post_type_object )
+	wp_die( __('Invalid post type') );
+
 if ( !current_user_can($post_type_object->cap->edit_posts) )
 	wp_die(__('Cheatin&#8217; uh?'));
 
