diff --git wp-admin/edit-comments.php wp-admin/edit-comments.php
index 40ef4a4..d84e2f9 100644
--- wp-admin/edit-comments.php
+++ wp-admin/edit-comments.php
@@ -101,12 +101,6 @@ if ( $doaction ) {
 
 $wp_list_table->prepare_items();
 
-$total_pages = $wp_list_table->get_pagination_arg( 'total_pages' );
-if ( $pagenum > $total_pages && $total_pages > 0 ) {
-	wp_redirect( add_query_arg( 'paged', $total_pages ) );
-	exit;
-}
-
 wp_enqueue_script('admin-comments');
 enqueue_comment_hotkeys_js();
 
diff --git wp-admin/edit-tags.php wp-admin/edit-tags.php
index 13534de..d576b63 100644
--- wp-admin/edit-tags.php
+++ wp-admin/edit-tags.php
@@ -148,10 +148,14 @@ case 'editedtag':
 break;
 
 default:
-
 if ( ! empty($_REQUEST['_wp_http_referer']) ) {
-	 wp_redirect( remove_query_arg( array('_wp_http_referer', '_wpnonce'), stripslashes($_SERVER['REQUEST_URI']) ) );
-	 exit;
+	$location = remove_query_arg( array('_wp_http_referer', '_wpnonce'), stripslashes($_SERVER['REQUEST_URI']) );
+
+	if ( ! empty( $_REQUEST['paged'] ) )
+		$location = add_query_arg( 'paged', $_REQUEST['paged'] );
+	
+	wp_redirect( $location );
+	exit;
 }
 
 $wp_list_table->prepare_items();
diff --git wp-admin/edit.php wp-admin/edit.php
index 5c7b194..f55cb6e 100644
--- wp-admin/edit.php
+++ wp-admin/edit.php
@@ -142,12 +142,6 @@ if ( 'post' != $post_type ) {
 
 $wp_list_table->prepare_items();
 
-$total_pages = $wp_list_table->get_pagination_arg( 'total_pages' );
-if ( $pagenum > $total_pages && $total_pages > 0 ) {
-	wp_redirect( add_query_arg( 'paged', $total_pages ) );
-	exit;
-}
-
 wp_enqueue_script('inline-edit-post');
 
 $title = $post_type_object->labels->name;
diff --git wp-admin/includes/class-wp-list-table.php wp-admin/includes/class-wp-list-table.php
index e7ce9e5..c3b20c4 100644
--- wp-admin/includes/class-wp-list-table.php
+++ wp-admin/includes/class-wp-list-table.php
@@ -138,7 +138,12 @@ class WP_List_Table {
 
 		if ( !$args['total_pages'] && $args['per_page'] > 0 )
 			$args['total_pages'] = ceil( $args['total_items'] / $args['per_page'] );
-
+		
+		if( ! headers_sent() && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) && $args['total_pages'] > 0 && $this->get_pagenum() > $args['total_pages'] ) {
+			wp_redirect( add_query_arg( 'paged', $args['total_pages'] ) );
+			exit;
+		}
+		
 		$this->_pagination_args = $args;
 	}
 
@@ -443,9 +448,6 @@ class WP_List_Table {
 	function get_pagenum() {
 		$pagenum = isset( $_REQUEST['paged'] ) ? absint( $_REQUEST['paged'] ) : 0;
 
-		if( isset( $this->_pagination_args['total_pages'] ) && $pagenum > $this->_pagination_args['total_pages'] )
-			$pagenum = $this->_pagination_args['total_pages'];
-
 		return max( 1, $pagenum );
 	}
 
diff --git wp-admin/network/edit.php wp-admin/network/edit.php
index 1e06e49..9d680b4 100644
--- wp-admin/network/edit.php
+++ wp-admin/network/edit.php
@@ -427,7 +427,11 @@ switch ( $_GET['action'] ) {
 
 			wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => $userfunction ), wp_get_referer() ) );
 		} else {
-			wp_redirect( network_admin_url( 'users.php' ) );
+			$location = network_admin_url( 'users.php' );
+
+			if ( ! empty( $_REQUEST['paged'] ) )
+				$location = add_query_arg( 'paged', $_REQUEST['paged'], $location );
+			wp_redirect( $location );
 		}
 		exit();
 	break;
diff --git wp-admin/network/sites.php wp-admin/network/sites.php
index 8a77d63..45dd338 100644
--- wp-admin/network/sites.php
+++ wp-admin/network/sites.php
@@ -17,7 +17,6 @@ if ( ! current_user_can( 'manage_sites' ) )
 	wp_die( __( 'You do not have permission to access this page.' ) );
 
 $wp_list_table = _get_list_table('WP_MS_Sites_List_Table');
-$pagenum = $wp_list_table->get_pagenum();
 
 $title = __( 'Sites' );
 $parent_file = 'sites.php';
@@ -88,12 +87,6 @@ if ( isset( $_REQUEST['updated'] ) && $_REQUEST['updated'] == 'true' && ! empty(
 
 $wp_list_table->prepare_items();
 
-$total_pages = $wp_list_table->get_pagination_arg( 'total_pages' );
-if ( $pagenum > $total_pages && $total_pages > 0 ) {
-	wp_redirect( add_query_arg( 'paged', $total_pages ) );
-	exit;
-}
-
 require_once( '../admin-header.php' );
 ?>
 
diff --git wp-admin/network/themes.php wp-admin/network/themes.php
index b802f74..f8545d3 100644
--- wp-admin/network/themes.php
+++ wp-admin/network/themes.php
@@ -22,7 +22,6 @@ if ( !current_user_can('manage_network_themes') )
 	wp_die( __( 'You do not have sufficient permissions to manage network themes.' ) );
 
 $wp_list_table = _get_list_table('WP_MS_Themes_List_Table');
-$pagenum = $wp_list_table->get_pagenum();
 
 $action = $wp_list_table->current_action();
 
@@ -171,12 +170,6 @@ if ( $action ) {
 
 $wp_list_table->prepare_items();
 
-$total_pages = $wp_list_table->get_pagination_arg( 'total_pages' );
-if ( $pagenum > $total_pages && $total_pages > 0 ) {
-	wp_redirect( add_query_arg( 'paged', $total_pages ) );
-	exit;
-}
-
 add_thickbox();
 
 add_screen_option( 'per_page', array('label' => _x( 'Themes', 'themes per page (screen options)' )) );
diff --git wp-admin/network/users.php wp-admin/network/users.php
index eb59670..7e1f63c 100644
--- wp-admin/network/users.php
+++ wp-admin/network/users.php
@@ -17,6 +17,7 @@ if ( ! current_user_can( 'manage_network_users' ) )
 	wp_die( __( 'You do not have permission to access this page.' ) );
 
 $wp_list_table = _get_list_table('WP_MS_Users_List_Table');
+
 $wp_list_table->prepare_items();
 
 $title = __( 'Users' );
diff --git wp-admin/plugin-install.php wp-admin/plugin-install.php
index 971ab68..0812750 100644
--- wp-admin/plugin-install.php
+++ wp-admin/plugin-install.php
@@ -21,13 +21,8 @@ if ( is_multisite() && ! is_network_admin() ) {
 }
 
 $wp_list_table = _get_list_table('WP_Plugin_Install_List_Table');
-$pagenum = $wp_list_table->get_pagenum();
+
 $wp_list_table->prepare_items();
-$total_pages = $wp_list_table->get_pagination_arg( 'total_pages' );
-if ( $pagenum > $total_pages && $total_pages > 0 ) {
-	wp_redirect( add_query_arg( 'paged', $total_pages ) );
-	exit;
-}
 
 $title = __('Install Plugins');
 $parent_file = 'plugins.php';
diff --git wp-admin/plugins.php wp-admin/plugins.php
index 0c36bbd..f423426 100644
--- wp-admin/plugins.php
+++ wp-admin/plugins.php
@@ -20,7 +20,6 @@ if ( !current_user_can('activate_plugins') )
 	wp_die( __( 'You do not have sufficient permissions to manage plugins for this site.' ) );
 
 $wp_list_table = _get_list_table('WP_Plugins_List_Table');
-$pagenum = $wp_list_table->get_pagenum();
 
 $action = $wp_list_table->current_action();
 
@@ -316,12 +315,6 @@ if ( $action ) {
 
 $wp_list_table->prepare_items();
 
-$total_pages = $wp_list_table->get_pagination_arg( 'total_pages' );
-if ( $pagenum > $total_pages && $total_pages > 0 ) {
-	wp_redirect( add_query_arg( 'paged', $total_pages ) );
-	exit;
-}
-
 wp_enqueue_script('plugin-install');
 add_thickbox();
 
diff --git wp-admin/theme-install.php wp-admin/theme-install.php
index 263d9a9..d92b6ae 100644
--- wp-admin/theme-install.php
+++ wp-admin/theme-install.php
@@ -21,13 +21,8 @@ if ( is_multisite() && ! is_network_admin() ) {
 }
 
 $wp_list_table = _get_list_table('WP_Theme_Install_List_Table');
-$pagenum = $wp_list_table->get_pagenum();
+
 $wp_list_table->prepare_items();
-$total_pages = $wp_list_table->get_pagination_arg( 'total_pages' );
-if ( $pagenum > $total_pages && $total_pages > 0 ) {
-	wp_redirect( add_query_arg( 'paged', $total_pages ) );
-	exit;
-}
 
 $title = __('Install Themes');
 $parent_file = 'themes.php';
diff --git wp-admin/upload.php wp-admin/upload.php
index 6a1d9b4..2ca11ba 100644
--- wp-admin/upload.php
+++ wp-admin/upload.php
@@ -13,7 +13,6 @@ if ( !current_user_can('upload_files') )
 	wp_die( __( 'You do not have permission to upload files.' ) );
 
 $wp_list_table = _get_list_table('WP_Media_List_Table');
-$pagenum = $wp_list_table->get_pagenum();
 
 // Handle bulk actions
 $doaction = $wp_list_table->current_action();
@@ -130,12 +129,6 @@ if ( $doaction ) {
 
 $wp_list_table->prepare_items();
 
-$total_pages = $wp_list_table->get_pagination_arg( 'total_pages' );
-if ( $pagenum > $total_pages && $total_pages > 0 ) {
-	wp_redirect( add_query_arg( 'paged', $total_pages ) );
-	exit;
-}
-
 $title = __('Media Library');
 $parent_file = 'upload.php';
 
diff --git wp-includes/user.php wp-includes/user.php
index e39d19e..2a1a101 100644
--- wp-includes/user.php
+++ wp-includes/user.php
@@ -542,19 +542,19 @@ class WP_User_Query {
 	 */
 	function query() {
 		global $wpdb;
-
+		
 		if ( is_array( $this->query_vars['fields'] ) || 'all' == $this->query_vars['fields'] ) {
 			$this->results = $wpdb->get_results("SELECT $this->query_fields $this->query_from $this->query_where $this->query_orderby $this->query_limit");
 		} else {
 			$this->results = $wpdb->get_col("SELECT $this->query_fields $this->query_from $this->query_where $this->query_orderby $this->query_limit");
 		}
+		
+		if ( $this->query_vars['count_total'] )
+			$this->total_users = $wpdb->get_var("SELECT COUNT(*) $this->query_from $this->query_where");
 
 		if ( !$this->results )
 			return;
 
-		if ( $this->query_vars['count_total'] )
-			$this->total_users = $wpdb->get_var("SELECT COUNT(*) $this->query_from $this->query_where");
-
 		if ( 'all_with_meta' == $this->query_vars['fields'] ) {
 			cache_users( $this->results );
 
