Index: wp-admin/edit-comments.php
===================================================================
--- wp-admin/edit-comments.php	(revision 17263)
+++ wp-admin/edit-comments.php	(working copy)
@@ -37,7 +37,7 @@
 	$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 ) )
Index: wp-admin/includes/class-wp-list-table.php
===================================================================
--- wp-admin/includes/class-wp-list-table.php	(revision 17268)
+++ wp-admin/includes/class-wp-list-table.php	(working copy)
@@ -614,7 +614,30 @@
 		$hidden = array_intersect( array_keys( $columns ), array_filter( $hidden ) );
 		return count( $columns ) - count( $hidden );
 	}
+	
+	function get_order_info() {
+		$current_orderby = isset( $_GET['orderby'] ) ? $_GET['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.
 	 *
@@ -630,16 +653,8 @@
 
 		$current_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
 
-		if ( isset( $_GET['orderby'] ) )
-			$current_orderby = $_GET['orderby'];
-		else
-			$current_orderby = '';
+		list( $current_orderby, $current_order ) = $this->get_order_info();
 
-		if ( isset( $_GET['order'] ) && 'desc' == $_GET['order'] )
-			$current_order = 'desc';
-		else
-			$current_order = 'asc';
-
 		foreach ( $columns as $column_key => $column_display_name ) {
 			$class = array( 'manage-column', "column-$column_key" );
 
@@ -733,8 +748,11 @@
 	 * @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="' . esc_attr( $current_orderby ) . '" /><input type="hidden" name="order" value="' . esc_attr( $current_order ) . '" />';
+		}
 ?>
 	<div class="tablenav <?php echo esc_attr( $which ); ?>">
 
Index: wp-admin/edit-tags.php
===================================================================
--- wp-admin/edit-tags.php	(revision 17263)
+++ wp-admin/edit-tags.php	(working copy)
@@ -78,6 +78,7 @@
 
 	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;
@@ -104,6 +105,7 @@
 	}
 
 	$location = add_query_arg( 'message', 6, $location );
+	$location = $wp_list_table->add_query_args( $location );
 	wp_redirect( $location );
 	exit;
 
Index: wp-admin/js/list-table.dev.js
===================================================================
--- wp-admin/js/list-table.dev.js	(revision 17263)
+++ wp-admin/js/list-table.dev.js	(working copy)
@@ -122,7 +122,9 @@
 		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();
 
@@ -144,6 +146,9 @@
 			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 ) {
Index: wp-admin/edit.php
===================================================================
--- wp-admin/edit.php	(revision 17263)
+++ wp-admin/edit.php	(working copy)
@@ -41,7 +41,7 @@
 	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);
 
