diff --git wp-admin/edit-comments.php wp-admin/edit-comments.php
index 29e5f03..779c311 100644
--- wp-admin/edit-comments.php
+++ wp-admin/edit-comments.php
@@ -13,7 +13,7 @@ if ( !current_user_can('edit_posts') )
 
 $wp_list_table = get_list_table('WP_Comments_List_Table');
 $pagenum = $wp_list_table->get_pagenum();
-
+list( $current_orderby, $current_order ) = $wp_list_table->get_order_info();
 $doaction = $wp_list_table->current_action();
 
 if ( $doaction ) {
@@ -38,6 +38,8 @@ if ( $doaction ) {
 
 	$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 );
+	if ( $current_orderby )
+		$redirect_to = add_query_arg( array( 'order' => $current_order, 'orderby' => $current_orderby ), $redirect_to );
 
 	foreach ( $comment_ids as $comment_id ) { // Check the permissions on each
 		if ( !current_user_can( 'edit_comment', $comment_id ) )
diff --git wp-admin/edit-tags.php wp-admin/edit-tags.php
index cfaba6c..4ca5981 100644
--- wp-admin/edit-tags.php
+++ wp-admin/edit-tags.php
@@ -94,7 +94,8 @@ case 'bulk-delete':
 	foreach ( $tags as $tag_ID ) {
 		wp_delete_term( $tag_ID, $taxonomy );
 	}
-
+	$pagenum = $wp_list_table->get_pagenum();
+	list( $current_orderby, $current_order ) = $wp_list_table->get_order_info();
 	$location = 'edit-tags.php?taxonomy=' . $taxonomy;
 	if ( 'post' != $post_type )
 		$location .= '&post_type=' . $post_type;
@@ -103,7 +104,10 @@ case 'bulk-delete':
 			$location = $referer;
 	}
 
-	$location = add_query_arg( 'message', 6, $location );
+	$location = add_query_arg( array( 'message' => 6, 'paged' => $pagenum ), $location );
+	if ( $current_orderby )
+		$location = add_query_arg( array( 'order' => $current_order, 'orderby' => $current_orderby ), $location );
+
 	wp_redirect( $location );
 	exit;
 
diff --git wp-admin/edit.php wp-admin/edit.php
index 5e0154f..2cb3491 100644
--- wp-admin/edit.php
+++ wp-admin/edit.php
@@ -25,6 +25,7 @@ if ( !current_user_can($post_type_object->cap->edit_posts) )
 
 $wp_list_table = get_list_table('WP_Posts_List_Table');
 $pagenum = $wp_list_table->get_pagenum();
+list( $current_orderby, $current_order ) = $wp_list_table->get_order_info();
 
 // Back-compat for viewing comments of an entry
 foreach ( array( 'p', 'attachment_id', 'page_id' ) as $_redirect ) {
@@ -42,6 +43,8 @@ if ( $doaction ) {
 
 	$sendback = remove_query_arg( array('trashed', 'untrashed', 'deleted', 'ids'), wp_get_referer() );
 	$sendback = add_query_arg( 'paged', $pagenum, $sendback );
+	if ( $current_orderby )
+		$sendback = add_query_arg( array( 'order' => $current_order, 'orderby' => $current_orderby ), $sendback );
 	if ( strpos($sendback, 'post.php') !== false )
 		$sendback = admin_url($post_new_file);
 
diff --git wp-admin/includes/class-wp-list-table.php wp-admin/includes/class-wp-list-table.php
index fa2001d..d15b80b 100644
--- wp-admin/includes/class-wp-list-table.php
+++ wp-admin/includes/class-wp-list-table.php
@@ -611,6 +611,22 @@ 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);
+	}
 
 	/**
 	 * Print column headers, accounting for hidden and sortable columns.
@@ -627,15 +643,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 +736,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 ) {
