diff --git wp-admin/edit-comments.php wp-admin/edit-comments.php
index 29e5f03..98f0373 100644
--- wp-admin/edit-comments.php
+++ wp-admin/edit-comments.php
@@ -12,8 +12,6 @@ if ( !current_user_can('edit_posts') )
 	wp_die(__('Cheatin&#8217; uh?'));
 
 $wp_list_table = get_list_table('WP_Comments_List_Table');
-$pagenum = $wp_list_table->get_pagenum();
-
 $doaction = $wp_list_table->current_action();
 
 if ( $doaction ) {
@@ -37,7 +35,7 @@ if ( $doaction ) {
 	$approved = $unapproved = $spammed = $unspammed = $trashed = $untrashed = $deleted = 0;
 
 	$redirect_to = remove_query_arg( array( 'trashed', 'untrashed', 'deleted', 'spammed', 'unspammed', 'approved', 'unapproved', 'ids' ), wp_get_referer() );
-	$redirect_to = add_query_arg( 'paged', $pagenum, $redirect_to );
+	$redirect_to = $wp_list_table->add_query_args( $redirect_to );
 
 	foreach ( $comment_ids as $comment_id ) { // Check the permissions on each
 		if ( !current_user_can( 'edit_comment', $comment_id ) )
@@ -102,7 +100,7 @@ if ( $doaction ) {
 $wp_list_table->prepare_items();
 
 $total_pages = $wp_list_table->get_pagination_arg( 'total_pages' );
-if ( $pagenum > $total_pages && $total_pages > 0 ) {
+if ( $wp_list_table->get_pagenum() > $total_pages && $total_pages > 0 ) {
 	wp_redirect( add_query_arg( 'paged', $total_pages ) );
 	exit;
 }
diff --git wp-admin/edit-tags.php wp-admin/edit-tags.php
index cfaba6c..cf9af28 100644
--- wp-admin/edit-tags.php
+++ wp-admin/edit-tags.php
@@ -78,6 +78,7 @@ case 'delete':
 
 	wp_delete_term( $tag_ID, $taxonomy );
 
+	$location = $wp_list_table->add_query_args( $location );
 	$location = add_query_arg( 'message', 2, $location );
 	wp_redirect( $location );
 	exit;
@@ -102,8 +103,10 @@ case 'bulk-delete':
 		if ( false !== strpos( $referer, 'edit-tags.php' ) )
 			$location = $referer;
 	}
-
+	
 	$location = add_query_arg( 'message', 6, $location );
+	$location = $wp_list_table->add_query_args( $location );
+
 	wp_redirect( $location );
 	exit;
 
diff --git wp-admin/edit.php wp-admin/edit.php
index 5e0154f..da8d828 100644
--- wp-admin/edit.php
+++ wp-admin/edit.php
@@ -24,7 +24,6 @@ if ( !current_user_can($post_type_object->cap->edit_posts) )
 	wp_die(__('Cheatin&#8217; uh?'));
 
 $wp_list_table = get_list_table('WP_Posts_List_Table');
-$pagenum = $wp_list_table->get_pagenum();
 
 // Back-compat for viewing comments of an entry
 foreach ( array( 'p', 'attachment_id', 'page_id' ) as $_redirect ) {
@@ -41,7 +40,7 @@ if ( $doaction ) {
 	check_admin_referer('bulk-posts');
 
 	$sendback = remove_query_arg( array('trashed', 'untrashed', 'deleted', 'ids'), wp_get_referer() );
-	$sendback = add_query_arg( 'paged', $pagenum, $sendback );
+	$sendback = $wp_list_table->add_query_args( $sendback );
 	if ( strpos($sendback, 'post.php') !== false )
 		$sendback = admin_url($post_new_file);
 
@@ -143,7 +142,7 @@ 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 ) {
+if ( $wp_list_table->get_pagenum() > $total_pages && $total_pages > 0 ) {
 	wp_redirect( add_query_arg( 'paged', $total_pages ) );
 	exit;
 }
diff --git wp-admin/includes/class-wp-list-table.php wp-admin/includes/class-wp-list-table.php
index fa2001d..084cd3f 100644
--- wp-admin/includes/class-wp-list-table.php
+++ wp-admin/includes/class-wp-list-table.php
@@ -611,6 +611,32 @@ class WP_List_Table {
 		$hidden = array_intersect( array_keys( $columns ), array_filter( $hidden ) );
 		return count( $columns ) - count( $hidden );
 	}
+	
+	function get_order_info() {
+		if ( isset( $_GET['orderby'] ) )
+			$current_orderby = $_GET['orderby'];
+		else
+			$current_orderby = '';
+
+		if ( ! $current_orderby )
+			$current_order = '';
+		elseif ( isset( $_GET['order'] ) && 'desc' == $_GET['order'] )
+			$current_order = 'desc';
+		else
+			$current_order = 'asc';
+			
+		return array($current_orderby, $current_order);
+	}
+	
+	function add_query_args( $location ) {
+		$pagenum = $this->get_pagenum();
+		list( $current_orderby, $current_order ) = $this->get_order_info();
+		$location = add_query_arg( 'paged', $pagenum, $location );
+		if ( $current_orderby )
+			$location = add_query_arg( array( 'orderby' => $current_orderby, 'order' => $current_order ), $location );
+		
+		return $location;
+	}
 
 	/**
 	 * Print column headers, accounting for hidden and sortable columns.
@@ -627,15 +653,7 @@ class WP_List_Table {
 
 		$current_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
 
-		if ( isset( $_GET['orderby'] ) )
-			$current_orderby = $_GET['orderby'];
-		else
-			$current_orderby = '';
-
-		if ( isset( $_GET['order'] ) && 'desc' == $_GET['order'] )
-			$current_order = 'desc';
-		else
-			$current_order = 'asc';
+		list( $current_orderby, $current_order ) = $this->get_order_info();
 
 		foreach ( $columns as $column_key => $column_display_name ) {
 			$class = array( 'manage-column', "column-$column_key" );
@@ -728,8 +746,11 @@ class WP_List_Table {
 	 * @access protected
 	 */
 	function display_tablenav( $which ) {
-		if ( 'top' == $which )
+		if ( 'top' == $which ) {
 			wp_nonce_field( 'bulk-' . $this->_args['plural'] );
+			list( $current_orderby, $current_order ) = $this->get_order_info();
+			echo '<input type="hidden" name="orderby" value="' . $current_orderby . '" /><input type="hidden" name="order" value="' . $current_order . '" />';
+		}
 ?>
 	<div class="tablenav <?php echo esc_attr( $which ); ?>">
 
diff --git wp-admin/js/list-table.dev.js wp-admin/js/list-table.dev.js
index 51b52d1..2176da2 100644
--- wp-admin/js/list-table.dev.js
+++ wp-admin/js/list-table.dev.js
@@ -103,7 +103,9 @@ window.listTable = {
 		if ( 'object' != typeof response ) {
 			this.handle_error();
 		} else {
-			var tablenav = $('.tablenav-pages');
+			var tablenav = $('.tablenav-pages'),
+				order = $.query.GET('order'),
+				orderby = (order) ? $.query.GET('orderby') : '';
 
 			this.stop_loading();
 
@@ -124,7 +126,10 @@ window.listTable = {
 			// Disable buttons that should noop.
 			tablenav.find('.first-page, .prev-page').toggleClass('disabled', 1 == $.query.GET('paged'));
 			tablenav.find('.next-page, .last-page').toggleClass('disabled', response.total_pages == $.query.GET('paged'));
-
+			
+			$('input[name=order]').val(order);
+			$('input[name=orderby]').val(orderby);
+			
 			$('th.column-cb :input').attr('checked', false);
 
 			if ( history.replaceState ) {
