Index: wp-admin/includes/class-wp-posts-list-table.php
===================================================================
--- wp-admin/includes/class-wp-posts-list-table.php	(revision 17126)
+++ wp-admin/includes/class-wp-posts-list-table.php	(working copy)
@@ -93,7 +93,7 @@
 
 		$total_items = $this->hierarchical_display ? $wp_query->post_count : $wp_query->found_posts;
 
-		$per_page = $this->get_items_per_page( 'edit_' . $post_type . '_per_page' );
+		$per_page = $this->get_items_per_page( _convert_key_to_option( 'edit_' . $post_type . '_per_page' ) );
  		$per_page = apply_filters( 'edit_posts_per_page', $per_page, $post_type );
 
 		if ( $this->hierarchical_display )
Index: wp-admin/includes/post.php
===================================================================
--- wp-admin/includes/post.php	(revision 17126)
+++ wp-admin/includes/post.php	(working copy)
@@ -916,7 +916,7 @@
 	elseif ( isset($q['post_status']) && 'pending' == $q['post_status'] )
 		$order = 'ASC';
 
-	$per_page = 'edit_' . $post_type . '_per_page';
+	$per_page = _convert_key_to_option( 'edit_' . $post_type . '_per_page' );
 	$posts_per_page = (int) get_user_option( $per_page );
 	if ( empty( $posts_per_page ) || $posts_per_page < 1 )
 		$posts_per_page = 20;
Index: wp-admin/includes/misc.php
===================================================================
--- wp-admin/includes/misc.php	(revision 17126)
+++ wp-admin/includes/misc.php	(working copy)
@@ -310,6 +310,10 @@
 	return $out;
 }
 
+function _convert_key_to_option( $key ) {
+	return str_replace('-', '_', $key);
+}
+
 /**
  * Saves option for number of rows when listing posts, pages, comments, etc.
  *
@@ -328,17 +332,16 @@
 		if ( !preg_match( '/^[a-z_-]+$/', $option ) )
 			return;
 
-		$option = str_replace('-', '_', $option);
+		$option = _convert_key_to_option( $option );
 
 		$map_option = $option;
 		$type = str_replace('edit_', '', $map_option);
 		$type = str_replace('_per_page', '', $type);
-		if ( in_array($type, get_post_types()) )
+		if ( in_array( $type, array_map( '_convert_key_to_option', get_post_types() ) ) )
 			$map_option = 'edit_per_page';
-		if ( in_array( $type, get_taxonomies()) )
+		if ( in_array( $type,  array_map( '_convert_key_to_option',  get_taxonomies() ) ) )
 			$map_option = 'edit_tags_per_page';
 
-
 		switch ( $map_option ) {
 			case 'edit_per_page':
 			case 'users_per_page':
Index: wp-admin/includes/template.php
===================================================================
--- wp-admin/includes/template.php	(revision 17126)
+++ wp-admin/includes/template.php	(working copy)
@@ -1878,7 +1878,7 @@
 	$per_page_label = $wp_current_screen_options['per_page']['label'];
 
 	if ( empty($wp_current_screen_options['per_page']['option']) ) {
-		$option = str_replace( '-', '_', "{$screen->id}_per_page" );
+		$option = _convert_key_to_option( "{$screen->id}_per_page" );
 	} else {
 		$option = $wp_current_screen_options['per_page']['option'];
 	}
