Index: wp-admin/menu.php
===================================================================
--- wp-admin/menu.php	(Revision 13810)
+++ wp-admin/menu.php	(Arbeitskopie)
@@ -118,9 +118,9 @@
 	$ptype_obj = get_post_type_object($ptype);
 
 	$menu[$_wp_last_object_menu] = array(esc_attr($ptype_obj->label), $ptype_obj->edit_type_cap, "edit.php?post_type=$ptype", '', 'menu-top menu-icon-posts', 'menu-' . sanitize_html_class($ptype), 'div');
-	$submenu["edit.php?post_type=$ptype"][5]  = array( __('Edit'), 'edit_posts',  "edit.php?post_type=$ptype");
+	$submenu["edit.php?post_type=$ptype"][5]  = array( __('Edit'), $ptype_obj->edit_type_cap,  "edit.php?post_type=$ptype");
 	/* translators: add new custom post type */
-	$submenu["edit.php?post_type=$ptype"][10]  = array( _x('Add New', 'post'), 'edit_posts', "post-new.php?post_type=$ptype" );
+	$submenu["edit.php?post_type=$ptype"][10]  = array( _x('Add New', 'post'), $ptype_obj->edit_type_cap, "post-new.php?post_type=$ptype" );
 
 	$i = 15;
 	foreach ( $wp_taxonomies as $tax ) {
Index: wp-admin/edit.php
===================================================================
--- wp-admin/edit.php	(Revision 13810)
+++ wp-admin/edit.php	(Arbeitskopie)
@@ -9,7 +9,17 @@
 /** WordPress Administration Bootstrap */
 require_once('admin.php');
 
-if ( !current_user_can('edit_posts') )
+if ( !isset($_GET['post_type']) )
+	$post_type = 'post';
+elseif ( in_array( $_GET['post_type'], get_post_types( array('public' => true ) ) ) )
+	$post_type = $_GET['post_type'];
+else
+	wp_die( __('Invalid post type') );
+$_GET['post_type'] = $post_type;
+
+$post_type_object = get_post_type_object($post_type);
+
+if ( !current_user_can($post_type_object->edit_type_cap) )
 	wp_die(__('Cheatin&#8217; uh?'));
 
 // Back-compat for viewing comments of an entry
@@ -20,16 +30,6 @@
 	unset( $_redirect );
 }
 
-if ( !isset($_GET['post_type']) )
-	$post_type = 'post';
-elseif ( in_array( $_GET['post_type'], get_post_types( array('public' => true ) ) ) )
-	$post_type = $_GET['post_type'];
-else
-	wp_die( __('Invalid post type') );
-$_GET['post_type'] = $post_type;
-
-$post_type_object = get_post_type_object($post_type);
-
 if ( 'post' != $post_type ) {
 	$parent_file = "edit.php?post_type=$post_type";
 	$submenu_file = "edit.php?post_type=$post_type";
