Index: wp-admin/users.php
===================================================================
--- wp-admin/users.php	(revision 15954)
+++ wp-admin/users.php	(working copy)
@@ -12,7 +12,7 @@
 /** WordPress Registration API */
 require_once( ABSPATH . WPINC . '/registration.php');
 
-$wp_list_table = get_list_table('users');
+$wp_list_table = get_list_table('WP_Users_Table');
 $wp_list_table->check_permissions();
 
 $title = __('Users');
Index: wp-admin/edit-comments.php
===================================================================
--- wp-admin/edit-comments.php	(revision 15954)
+++ wp-admin/edit-comments.php	(working copy)
@@ -9,7 +9,7 @@
 /** WordPress Administration Bootstrap */
 require_once('./admin.php');
 
-$wp_list_table = get_list_table('comments');
+$wp_list_table = get_list_table('WP_Comments_Table');
 $wp_list_table->check_permissions();
 
 $doaction = $wp_list_table->current_action();
Index: wp-admin/admin-ajax.php
===================================================================
--- wp-admin/admin-ajax.php	(revision 15954)
+++ wp-admin/admin-ajax.php	(working copy)
@@ -51,19 +51,14 @@
 if ( isset( $_GET['action'] ) ) :
 switch ( $action = $_GET['action'] ) :
 case 'fetch-list' :
-	require_once( ABSPATH . '/wp-admin/includes/default-list-tables.php' );
-	// Temp
-	require_once( ABSPATH . '/wp-admin/includes/list-table-posts.php' );
 
-	$class = $_GET['list_args']['class'];
+	$wp_list_table = get_list_table( $_GET['list_args']['class'] );
+	if ( ! $wp_list_table )
+		die( '0' );
 
-	if ( class_exists( $class ) ) {
-		$current_screen = (object) $_GET['list_args']['screen'];
-		$wp_list_table = new $class;
-		$wp_list_table->ajax_response();
-	}
+	$current_screen = (object) $_GET['list_args']['screen'];
+	$wp_list_table->ajax_response();
 
-	die('0');
 	break;
 case 'ajax-tag-search' :
 	if ( !current_user_can( 'edit_posts' ) )
@@ -558,7 +553,7 @@
 	if ( isset($_POST['screen']) )
 		set_current_screen($_POST['screen']);
 
-	$wp_list_table = get_list_table('terms');
+	$wp_list_table = get_list_table('WP_Terms_Table');
 
 	$level = 0;
 	if ( is_taxonomy_hierarchical($taxonomy) ) {
@@ -622,7 +617,7 @@
 	if ( !current_user_can( 'edit_posts' ) )
 		die('-1');
 
-	$wp_list_table = get_list_table('comments');
+	$wp_list_table = get_list_table('WP_Comments_Table');
 	$wp_list_table->from_ajax = true;
 
 	$wp_list_table->prepare_items();
@@ -651,7 +646,7 @@
 	if ( !current_user_can( 'edit_post', $post_ID ) )
 		die('-1');
 
-	$wp_list_table = get_list_table('post-comments');
+	$wp_list_table = get_list_table('WP_Post_Comments_Table');
 
 	$wp_list_table->prepare_items();
 
@@ -676,7 +671,7 @@
 case 'replyto-comment' :
 	check_ajax_referer( $action, '_ajax_nonce-replyto-comment' );
 
-	$wp_list_table = get_list_table('comments');
+	$wp_list_table = get_list_table('WP_Comments_Table');
 	$wp_list_table->checkbox = ( isset($_POST['checkbox']) && true == $_POST['checkbox'] ) ? 1 : 0;
 
 	$comment_post_ID = (int) $_POST['comment_post_ID'];
@@ -757,7 +752,7 @@
 	$comments_status = isset($_POST['comments_listing']) ? $_POST['comments_listing'] : '';
 
 	$checkbox = ( isset($_POST['checkbox']) && true == $_POST['checkbox'] ) ? 1 : 0;
-	$wp_list_table = get_list_table( $checkbox ? 'comments' : 'post-comments' );
+	$wp_list_table = get_list_table( $checkbox ? 'WP_Comments_Table' : 'WP_Post_Comments_Table' );
 
 	ob_start();
 		$wp_list_table->single_row( get_comment( $comment_id ) );
@@ -905,7 +900,7 @@
 	}
 	$user_object = new WP_User( $user_id );
 
-	$wp_list_table = get_list_table('users');
+	$wp_list_table = get_list_table('WP_Users_Table');
 
 	$x = new WP_Ajax_Response( array(
 		'what' => 'user',
@@ -1204,7 +1199,7 @@
 	// update the post
 	edit_post();
 
-	$wp_list_table = get_list_table('posts');
+	$wp_list_table = get_list_table('WP_Posts_Table');
 
 	$mode = $_POST['post_view'];
 	$wp_list_table->display_rows( array( get_post( $_POST['post_ID'] ) ) );
@@ -1214,7 +1209,7 @@
 case 'inline-save-tax':
 	check_ajax_referer( 'taxinlineeditnonce', '_inline_edit' );
 
-	$wp_list_table = get_list_table('terms');
+	$wp_list_table = get_list_table('WP_Terms_Table');
 
 	$wp_list_table->check_permissions('edit');
 
Index: wp-admin/includes/class-wp-list-table.php
===================================================================
--- wp-admin/includes/class-wp-list-table.php	(revision 15954)
+++ wp-admin/includes/class-wp-list-table.php	(working copy)
@@ -815,17 +815,43 @@
  *
  * @since 3.1.0
  *
- * @param string $type The type of the list table
- * @return object
+ * @param string $class The type of the list table, which is the class name except for core list tables.
+ * @return object|bool Object on success, false if the class does not exist.
  */
-function get_list_table( $type ) {
+function get_list_table( $class ) {
 	require_once( ABSPATH . '/wp-admin/includes/default-list-tables.php' );
-	// Temp
-	require_once( ABSPATH . '/wp-admin/includes/list-table-posts.php' );
 
-	$class = 'WP_' . strtr( ucwords( strtr( $type, '-', ' ') ), ' ', '_' ) . '_Table';
-	$class = apply_filters( "get_list_table_$type", $class );
+	$class = apply_filters( 'get_list_table', $class );
 
-	return new $class;
+	require_list_table( $class );
+
+	if ( class_exists( $class ) )
+		return new $class;
+	return false;
 }
 
+/**
+ * Include the proper file for a core list table.
+ *
+ * Useful for extending a core class that would not otherwise be required.
+ *
+ * @since 3.1.0
+ * @uses do_action() Calls 'require_list_table_$class' if not a core class to allow
+ * 	a plugin to conditionally include a class when needed.
+ *
+ * @param string $table The core table to include.
+ */
+function require_list_table( $class ) {
+	$core_classes = array( 'WP_Posts_Table', 'WP_Media_Table', 'WP_Terms_Table', 'WP_Users_Table',
+		'WP_Comments_Table', 'WP_Post_Comments_Table', 'WP_Links_Table', 'WP_Sites_Table', 'WP_MS_Users_Table',
+		'WP_Plugins_Table', 'WP_Plugin_Install_Table', 'WP_Themes_Table', 'WP_Theme_Install_Table' );
+
+	if ( in_array( $class, $core_classes ) ) {
+		$class = strtolower( str_replace( '_', '-', substr( $class, 3, -6 ) ) );
+		require_once( ABSPATH . '/wp-admin/includes/list-table-' . $class . '.php' );
+	} else {
+		do_action( "require_list_table_$class" );
+	}
+}
+
+?>
Index: wp-admin/includes/meta-boxes.php
===================================================================
--- wp-admin/includes/meta-boxes.php	(revision 15954)
+++ wp-admin/includes/meta-boxes.php	(working copy)
@@ -461,7 +461,7 @@
 
 	wp_nonce_field( 'get-comments', 'add_comment_nonce', false );
 
-	$wp_list_table = get_list_table('post-comments');
+	$wp_list_table = get_list_table('WP_Post_Comments_Table');
 ?>
 
 <table class="widefat comments-box fixed" cellspacing="0" style="display:none;">
Index: wp-admin/includes/template.php
===================================================================
--- wp-admin/includes/template.php	(revision 15954)
+++ wp-admin/includes/template.php	(working copy)
@@ -329,7 +329,7 @@
 		return;
 	}
 
-	$wp_list_table = get_list_table('comments');
+	$wp_list_table = get_list_table('WP_Comments_Table');
 
 	list ( $columns, $hidden ) = $wp_list_table->get_column_info();
 	$hidden = array_intersect( array_keys( $columns ), array_filter( $hidden ) );
Index: wp-admin/edit-tags.php
===================================================================
--- wp-admin/edit-tags.php	(revision 15954)
+++ wp-admin/edit-tags.php	(working copy)
@@ -9,7 +9,7 @@
 /** WordPress Administration Bootstrap */
 require_once('./admin.php');
 
-$wp_list_table = get_list_table('terms');
+$wp_list_table = get_list_table('WP_Terms_Table');
 $wp_list_table->check_permissions();
 
 $title = $tax->labels->name;
Index: wp-admin/upload.php
===================================================================
--- wp-admin/upload.php	(revision 15954)
+++ wp-admin/upload.php	(working copy)
@@ -9,7 +9,7 @@
 /** WordPress Administration Bootstrap */
 require_once( './admin.php' );
 
-$wp_list_table = get_list_table('media');
+$wp_list_table = get_list_table('WP_Media_Table');
 $wp_list_table->check_permissions();
 
 // Handle bulk actions
Index: wp-admin/plugin-install.php
===================================================================
--- wp-admin/plugin-install.php	(revision 15954)
+++ wp-admin/plugin-install.php	(working copy)
@@ -9,7 +9,7 @@
 /** WordPress Administration Bootstrap */
 require_once('./admin.php');
 
-$wp_list_table = get_list_table('plugin-install');
+$wp_list_table = get_list_table('WP_Plugin_Install_Table');
 $wp_list_table->check_permissions();
 $wp_list_table->prepare_items();
 
Index: wp-admin/network/users.php
===================================================================
--- wp-admin/network/users.php	(revision 15954)
+++ wp-admin/network/users.php	(working copy)
@@ -9,7 +9,7 @@
 
 require_once( './admin.php' );
 
-$wp_list_table = get_list_table('ms-users');
+$wp_list_table = get_list_table('WP_MS_Users_Table');
 $wp_list_table->check_permissions();
 $wp_list_table->prepare_items();
 
Index: wp-admin/network/sites.php
===================================================================
--- wp-admin/network/sites.php	(revision 15954)
+++ wp-admin/network/sites.php	(working copy)
@@ -12,7 +12,7 @@
 if ( ! is_multisite() )
 	wp_die( __( 'Multisite support is not enabled.' ) );
 
-$wp_list_table = get_list_table('sites');
+$wp_list_table = get_list_table('WP_Sites_Table');
 $wp_list_table->check_permissions();
 
 $title = __( 'Sites' );
Index: wp-admin/plugins.php
===================================================================
--- wp-admin/plugins.php	(revision 15954)
+++ wp-admin/plugins.php	(working copy)
@@ -9,7 +9,7 @@
 /** WordPress Administration Bootstrap */
 require_once('./admin.php');
 
-$wp_list_table = get_list_table('plugins');
+$wp_list_table = get_list_table('WP_Plugins_Table');
 $wp_list_table->check_permissions();
 
 $action = $wp_list_table->current_action();
Index: wp-admin/edit.php
===================================================================
--- wp-admin/edit.php	(revision 15954)
+++ wp-admin/edit.php	(working copy)
@@ -9,7 +9,7 @@
 /** WordPress Administration Bootstrap */
 require_once( './admin.php' );
 
-$wp_list_table = get_list_table('posts');
+$wp_list_table = get_list_table('WP_Posts_Table');
 $wp_list_table->check_permissions();
 
 // Back-compat for viewing comments of an entry
Index: wp-admin/link-manager.php
===================================================================
--- wp-admin/link-manager.php	(revision 15954)
+++ wp-admin/link-manager.php	(working copy)
@@ -9,7 +9,7 @@
 /** Load WordPress Administration Bootstrap */
 require_once ('admin.php');
 
-$wp_list_table = get_list_table('links');
+$wp_list_table = get_list_table('WP_Links_Table');
 $wp_list_table->check_permissions();
 
 // Handle bulk deletes
Index: wp-admin/theme-install.php
===================================================================
--- wp-admin/theme-install.php	(revision 15954)
+++ wp-admin/theme-install.php	(working copy)
@@ -9,7 +9,7 @@
 /** WordPress Administration Bootstrap */
 require_once('./admin.php');
 
-$wp_list_table = get_list_table('theme-install');
+$wp_list_table = get_list_table('WP_Theme_Install_Table');
 $wp_list_table->check_permissions();
 $wp_list_table->prepare_items();
 
Index: wp-admin/themes.php
===================================================================
--- wp-admin/themes.php	(revision 15954)
+++ wp-admin/themes.php	(working copy)
@@ -9,7 +9,7 @@
 /** WordPress Administration Bootstrap */
 require_once('./admin.php');
 
-$wp_list_table = get_list_table('themes');
+$wp_list_table = get_list_table('WP_Themes_Table');
 $wp_list_table->check_permissions();
 
 if ( current_user_can('switch_themes') && isset($_GET['action']) ) {
