Index: src/wp-admin/includes/plugin-install.php
===================================================================
--- src/wp-admin/includes/plugin-install.php	(revision 29755)
+++ src/wp-admin/includes/plugin-install.php	(working copy)
@@ -235,10 +235,18 @@
 function display_plugins_table() {
 	global $wp_list_table;
 
-	if ( current_filter() == 'install_plugins_favorites' && empty( $_GET['user'] ) && ! get_user_option( 'wporg_favorites' ) )
-			return;
+	if ( current_filter() == 'install_plugins_favorites' && empty( $_GET['user'] ) && ! get_user_option( 'wporg_favorites' ) ) {
+		return;
+	}
 
-	$wp_list_table->display();
+	?>
+	<form id="plugin-filter" action="" method="post">
+		<?php
+		wp_referer_field();
+		$wp_list_table->display();
+		?>
+	</form>
+	<?php
 }
 add_action( 'install_plugins_search',    'display_plugins_table' );
 add_action( 'install_plugins_popular',   'display_plugins_table' );
Index: src/wp-admin/plugin-install.php
===================================================================
--- src/wp-admin/plugin-install.php	(revision 29755)
+++ src/wp-admin/plugin-install.php	(working copy)
@@ -24,8 +24,27 @@
 
 $wp_list_table = _get_list_table('WP_Plugin_Install_List_Table');
 $pagenum = $wp_list_table->get_pagenum();
+
+if ( ! empty( $_REQUEST['_wp_http_referer'] ) ) {
+	$location = remove_query_arg( '_wp_http_referer', wp_unslash( $_SERVER['REQUEST_URI'] ) );
+
+	if ( ! empty( $_REQUEST['paged'] ) ) {
+		$location = add_query_arg( 'paged', (int) $_REQUEST['paged'], $location );
+	}
+
+	wp_redirect( $location );
+	exit;
+}
+
 $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 = __( 'Add Plugins' );
 $parent_file = 'plugins.php';
 
