Index: src/wp-admin/css/forms.css
===================================================================
--- src/wp-admin/css/forms.css	(revision 29119)
+++ src/wp-admin/css/forms.css	(working copy)
@@ -751,9 +751,70 @@
 	margin: -3px 3px;
 }
 
+/*------------------------------------------------------------------------------
+  21.0 - Upload File
+------------------------------------------------------------------------------*/
+
+.wp-upload-container {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	margin: 0px 0 0;
+	padding: 0;
+	width: 100%;
+	overflow: hidden;
+	position: relative;
+	top: 10px;
+}
+.wp-upload-container-hidden {
+	display: none;
+}
+.wp-upload-container .wp-upload-form {
+	background: #fafafa;
+	border: 1px solid #e5e5e5;
+	padding: 30px;
+	margin: 30px auto;
+	max-width: 380px;
+}
+.wp-upload-container .install-help {
+	color: #999;
+	font-size: 18px;
+	font-style: normal;
+	margin: 0;
+	padding: 40px 0 0;
+	text-align: center;
+}
+
+body.show-upload-container .hide-on-upload,
+body.show-upload-container .wp-upload-show {
+	display: none;
+}
+body.show-upload-container .wp-upload-container-hidden {
+	display: block;
+}
+
+.wp-upload-hide {
+	display: none;
+}
+body.show-upload-container .wp-upload-hide {
+	display: inline;
+}
+
 /* =Media Queries
 -------------------------------------------------------------- */
 
+@media only screen and (max-width: 1120px) {
+	.wp-upload-container .wp-upload-form {
+		margin: 20px 0;
+		max-width: 100%;
+	}
+	.wp-upload-container .install-help {
+		font-size: 15px;
+		padding: 20px 0 0;
+		text-align: left;
+	}
+}
+
 @media screen and ( max-width: 782px ) {
 	/* Input Elements */
 	textarea {
Index: src/wp-admin/css/themes.css
===================================================================
--- src/wp-admin/css/themes.css	(revision 29119)
+++ src/wp-admin/css/themes.css	(working copy)
@@ -1103,51 +1103,6 @@
 	position: relative;
 	width: 100%;
 }
-.theme-install-php a.upload,
-.theme-install-php a.browse-themes {
-	cursor: pointer;
-}
-.theme-install-php a.browse-themes,
-.theme-install-php.show-upload-theme a.upload {
-	display: none;
-}
-.theme-install-php.show-upload-theme a.browse-themes {
-	display: inline;
-}
-.upload-theme {
-	-webkit-box-sizing: border-box;
-	-moz-box-sizing: border-box;
-	box-sizing: border-box;
-	display: none;
-	margin: 0px 0 0;
-	padding: 0;
-	width: 100%;
-	overflow: hidden;
-	position: relative;
-	top: 10px;
-}
-body.show-upload-theme .upload-theme {
-	display: block;
-}
-.upload-theme .wp-upload-form {
-	background: #fafafa;
-	border: 1px solid #e5e5e5;
-	padding: 30px;
-	margin: 30px auto;
-	max-width: 380px;
-}
-.upload-theme .install-help {
-	color: #999;
-	font-size: 18px;
-	font-style: normal;
-	margin: 0;
-	padding: 40px 0 0;
-	text-align: center;
-}
-body.show-upload-theme .upload-theme + .theme-navigation,
-body.show-upload-theme .upload-theme + .theme-navigation + .theme-browser {
-	display: none;
-}
 .theme-navigation .theme-count {
 	margin-left: 0;
 	position: absolute;
@@ -1340,7 +1295,7 @@
 body.no-results p.no-themes {
 	display: block;
 }
-body.show-upload-theme p.no-themes {
+body.show-upload-container p.no-themes {
 	display: none !important;
 }
 
@@ -1358,15 +1313,6 @@
 	.more-filters-container {
 		border-bottom: 1px solid #eee;
 	}
-	.upload-theme .wp-upload-form {
-		margin: 20px 0;
-		max-width: 100%;
-	}
-	.upload-theme .install-help {
-		font-size: 15px;
-		padding: 20px 0 0;
-		text-align: left;
-	}
 	.more-filters-container .filters-group {
 		margin-bottom: 0;
 		margin-top: 5px;
Index: src/wp-admin/includes/class-wp-plugin-install-list-table.php
===================================================================
--- src/wp-admin/includes/class-wp-plugin-install-list-table.php	(revision 29119)
+++ src/wp-admin/includes/class-wp-plugin-install-list-table.php	(working copy)
@@ -27,15 +27,15 @@
 		// These are the tabs which are shown on the page
 		$tabs = array();
 		$tabs['dashboard'] = __( 'Search' );
-		if ( 'search' == $tab )
+		if ( 'search' == $tab ) {
 			$tabs['search']	= __( 'Search Results' );
-		$tabs['upload']    = __( 'Upload' );
+		}
 		$tabs['featured']  = _x( 'Featured', 'Plugin Installer' );
 		$tabs['popular']   = _x( 'Popular', 'Plugin Installer' );
 		$tabs['new']       = _x( 'Newest', 'Plugin Installer' );
 		$tabs['favorites'] = _x( 'Favorites', 'Plugin Installer' );
 		if ( $tab === 'beta' || false !== strpos( $GLOBALS['wp_version'], '-' ) ) {
-			$tabs['beta']      = _x( 'Beta Testing', 'Plugin Installer' );
+			$tabs['beta']  = _x( 'Beta Testing', 'Plugin Installer' );
 		}
 
 		$nonmenu_tabs = array( 'plugin-information' ); //Valid actions to perform which do not have a Menu item.
@@ -46,7 +46,7 @@
 		 * @since 2.7.0
 		 *
 		 * @param array $tabs The tabs shown on the Plugin Install screen. Defaults are 'dashboard', 'search',
-		 *                    'upload', 'featured', 'popular', 'new', and 'favorites'.
+		 *                    'featured', 'popular', 'new', and 'favorites'.
 		 */
 		$tabs = apply_filters( 'install_plugins_tabs', $tabs );
 
@@ -112,7 +112,7 @@
 		 * Filter API request arguments for each Plugin Install screen tab.
 		 *
 		 * The dynamic portion of the hook name, $tab, refers to the plugin install tabs.
-		 * Default tabs are 'dashboard', 'search', 'upload', 'featured', 'popular', 'new',
+		 * Default tabs are 'dashboard', 'search', 'featured', 'popular', 'new',
 		 * and 'favorites'.
 		 *
 		 * @since 3.7.0
Index: src/wp-admin/includes/plugin-install.php
===================================================================
--- src/wp-admin/includes/plugin-install.php	(revision 29119)
+++ src/wp-admin/includes/plugin-install.php	(working copy)
@@ -126,7 +126,7 @@
 
 function install_dashboard() {
 	?>
-	<p><?php printf( __( 'Plugins extend and expand the functionality of WordPress. You may automatically install plugins from the <a href="%1$s">WordPress Plugin Directory</a> or upload a plugin in .zip format via <a href="%2$s">this page</a>.' ), 'https://wordpress.org/plugins/', self_admin_url( 'plugin-install.php?tab=upload' ) ); ?></p>
+	<p><?php printf( __( 'Plugins extend and expand the functionality of WordPress. You may automatically install plugins from the <a href="%1$s">WordPress Plugin Directory</a> or <a href="%2$s" class="wp-upload-show">upload a plugin</a> in .zip format.' ), 'https://wordpress.org/plugins/', self_admin_url( 'plugin-install.php?upload' ) ); ?></p>
 
 	<h4><?php _e('Search') ?></h4>
 	<?php install_search_form( false ); ?>
@@ -187,14 +187,15 @@
  */
 function install_plugins_upload( $page = 1 ) {
 ?>
-	<h4><?php _e('Install a plugin in .zip format'); ?></h4>
-	<p class="install-help"><?php _e('If you have a plugin in a .zip format, you may install it by uploading it here.'); ?></p>
-	<form method="post" enctype="multipart/form-data" class="wp-upload-form" action="<?php echo self_admin_url('update.php?action=upload-plugin'); ?>">
-		<?php wp_nonce_field( 'plugin-upload'); ?>
-		<label class="screen-reader-text" for="pluginzip"><?php _e('Plugin zip file'); ?></label>
-		<input type="file" id="pluginzip" name="pluginzip" />
-		<?php submit_button( __( 'Install Now' ), 'button', 'install-plugin-submit', false ); ?>
-	</form>
+	<div class="wp-upload-container wp-upload-container-hidden">
+		<p class="install-help"><?php _e( 'If you have a plugin in a .zip format, you may install it by uploading it here.' ); ?></p>
+		<form method="post" enctype="multipart/form-data" class="wp-upload-form" action="<?php echo self_admin_url( 'update.php?action=upload-plugin' ); ?>">
+			<?php wp_nonce_field( 'plugin-upload' ); ?>
+			<label class="screen-reader-text" for="pluginzip"><?php _e( 'Plugin zip file' ); ?></label>
+			<input type="file" id="pluginzip" name="pluginzip" />
+			<?php submit_button( __( 'Install Now' ), 'button', 'install-plugin-submit', false ); ?>
+		</form>
+	</div>
 <?php
 }
 add_action('install_plugins_upload', 'install_plugins_upload', 10, 1);
Index: src/wp-admin/includes/theme-install.php
===================================================================
--- src/wp-admin/includes/theme-install.php	(revision 29119)
+++ src/wp-admin/includes/theme-install.php	(working copy)
@@ -6,7 +6,8 @@
  * @subpackage Administration
  */
 
-$themes_allowedtags = array('a' => array('href' => array(), 'title' => array(), 'target' => array()),
+$themes_allowedtags = array(
+	'a' => array('href' => array(), 'title' => array(), 'target' => array()),
 	'abbr' => array('title' => array()), 'acronym' => array('title' => array()),
 	'code' => array(), 'pre' => array(), 'em' => array(), 'strong' => array(),
 	'div' => array(), 'p' => array(), 'ul' => array(), 'ol' => array(), 'li' => array(),
@@ -136,13 +137,15 @@
 
 function install_themes_upload() {
 ?>
-<p class="install-help"><?php _e('If you have a theme in a .zip format, you may install it by uploading it here.'); ?></p>
-<form method="post" enctype="multipart/form-data" class="wp-upload-form" action="<?php echo self_admin_url('update.php?action=upload-theme'); ?>">
-	<?php wp_nonce_field( 'theme-upload'); ?>
-	<input type="file" name="themezip" />
-	<?php submit_button( __( 'Install Now' ), 'button', 'install-theme-submit', false ); ?>
-</form>
-	<?php
+	<div class="wp-upload-container wp-upload-container-hidden">
+		<p class="install-help"><?php _e( 'If you have a theme in a .zip format, you may install it by uploading it here.' ); ?></p>
+		<form method="post" enctype="multipart/form-data" class="wp-upload-form" action="<?php echo self_admin_url( 'update.php?action=upload-theme' ); ?>">
+			<?php wp_nonce_field( 'theme-upload' ); ?>
+			<input type="file" name="themezip" />
+			<?php submit_button( __( 'Install Now' ), 'button', 'install-theme-submit', false ); ?>
+		</form>
+	</div>
+<?php
 }
 // add_action('install_themes_upload', 'install_themes_upload', 10, 0);
 
Index: src/wp-admin/js/plugin-install.js
===================================================================
--- src/wp-admin/js/plugin-install.js	(revision 29119)
+++ src/wp-admin/js/plugin-install.js	(working copy)
@@ -1,69 +1,172 @@
-/* global plugininstallL10n, tb_click, confirm */
+window.wp = window.wp || {};
 
-/* Plugin Browser Thickbox related JS*/
-var tb_position;
-jQuery( document ).ready( function( $ ) {
-	tb_position = function() {
-		var tbWindow = $( '#TB_window' ),
-			width = $( window ).width(),
-			H = $( window ).height() - ( ( 850 < width ) ? 60 : 20 ),
-			W = ( 850 < width ) ? 830 : width - 20;
+(function($) {
 
-		if ( tbWindow.size() ) {
-			tbWindow.width( W ).height( H );
-			$( '#TB_iframeContent' ).width( W ).height( H );
-			tbWindow.css({
-				'margin-left': '-' + parseInt( ( W / 2 ), 10 ) + 'px'
+	// Skip if we missing _wpPluginSettings
+	if ( 'undefined' === typeof _wpPluginSettings ) {
+		return;
+	}
+
+	// Set up our namespace...
+	var plugins, l10n;
+	plugins = wp.plugins = wp.plugins || {};
+
+	// Store the plugin data and settings for organized and quick access
+	plugins.data = _wpPluginSettings;
+	l10n = plugins.data.l10n;
+
+	// Setup app structure
+	_.extend( plugins, {  view: {}, routes: {} });
+
+	plugins.InstallerRouter = Backbone.Router.extend({
+
+		routes: {
+			'plugin-install.php?upload': 'upload',
+			'plugin-install.php': 'sort'
+		},
+
+		baseUrl: function( url ) {
+			return 'plugin-install.php' + url;
+		},
+		
+		navigate: function() {
+			if ( Backbone.history._hasPushState ) {
+				Backbone.Router.prototype.navigate.apply( this, arguments );
+			}
+		}
+
+	});
+
+	plugins.view.Installer = wp.Backbone.View.extend({
+
+		// Initial render method
+		render: function() {
+			var self = this;
+
+			this.uploader();
+		},
+		
+		uploader: function() {
+			$( '.wp-upload-show' ).on( 'click', function( event ) {
+				event.preventDefault();
+				$( 'body' ).addClass( 'show-upload-container' );
+				plugins.router.navigate( plugins.router.baseUrl( '?upload' ), { replace: true } );
 			});
-			if ( typeof document.body.style.maxWidth !== 'undefined' ) {
+			$( '.wp-upload-hide' ).on( 'click', function( event ) {
+				event.preventDefault();
+				$( 'body' ).removeClass( 'show-upload-container' );
+				plugins.router.navigate( plugins.router.baseUrl( '' ), { replace: true } );
+			});
+		},
+
+	});
+
+	plugins.RunInstaller = {
+
+		init: function() {
+			this.view = new plugins.view.Installer();
+			this.render();
+		},
+
+		render: function() {
+			this.routes();
+			this.view.render();
+			
+			Backbone.history.start({
+				root: plugins.data.settings.adminUrl,
+				pushState: true,
+				hashChange: false
+			});
+		},
+
+		routes: function() {
+			var self = this,
+				request = {};
+
+			// Bind to our global `wp.plugins` object
+			plugins.router = new plugins.InstallerRouter();
+
+			// Support the `upload` route by going straight to upload section
+			plugins.router.on( 'route:upload', function() {
+				$( '.wp-upload-show' ).trigger( 'click' );
+			});
+		},
+
+	}
+
+	// Ready...
+	$( document ).ready(function() {
+
+		plugins.RunInstaller.init();
+
+	});
+
+	// Plugin Browser Thickbox related JS
+	var tb_position;
+	$( document ).ready(function() {
+		tb_position = function() {
+			var tbWindow = $( '#TB_window' ),
+				width = $( window ).width(),
+				H = $( window ).height() - ( ( 850 < width ) ? 60 : 20 ),
+				W = ( 850 < width ) ? 830 : width - 20;
+
+			if ( tbWindow.size() ) {
+				tbWindow.width( W ).height( H );
+				$( '#TB_iframeContent' ).width( W ).height( H );
 				tbWindow.css({
-					'top': ( ( 850 < width ) ? 30 : 10 ) + 'px',
-					'margin-top': '0'
+					'margin-left': '-' + parseInt( ( W / 2 ), 10 ) + 'px'
 				});
+				if ( typeof document.body.style.maxWidth !== 'undefined' ) {
+					tbWindow.css({
+						'top': ( ( 850 < width ) ? 30 : 10 ) + 'px',
+						'margin-top': '0'
+					});
+				}
 			}
-		}
 
-		return $( 'a.thickbox' ).each( function() {
-			var href = $( this ).attr( 'href' );
-			if ( ! href ) {
-				return;
-			}
-			href = href.replace( /&width=[0-9]+/g, '' );
-			href = href.replace( /&height=[0-9]+/g, '' );
-			$(this).attr( 'href', href + '&width=' + W + '&height=' + ( H ) );
+			return $( 'a.thickbox' ).each( function() {
+				var href = $( this ).attr( 'href' );
+				if ( ! href ) {
+					return;
+				}
+				href = href.replace( /&width=[0-9]+/g, '' );
+				href = href.replace( /&height=[0-9]+/g, '' );
+				$(this).attr( 'href', href + '&width=' + W + '&height=' + ( H ) );
+			});
+		};
+
+		$( window ).resize( function() {
+			tb_position();
 		});
-	};
 
-	$( window ).resize( function() {
-		tb_position();
-	});
+		$('.plugins').on( 'click', 'a.thickbox', function() {
+			tb_click.call(this);
 
-	$('.plugins').on( 'click', 'a.thickbox', function() {
-		tb_click.call(this);
+			$('#TB_title').css({'background-color':'#222','color':'#cfcfcf'});
+			$('#TB_ajaxWindowTitle').html('<strong>' + l10n.pluginInformation + '</strong>&nbsp;' + $(this).attr('title') );
+			return false;
+		});
 
-		$('#TB_title').css({'background-color':'#222','color':'#cfcfcf'});
-		$('#TB_ajaxWindowTitle').html('<strong>' + plugininstallL10n.plugin_information + '</strong>&nbsp;' + $(this).attr('title') );
-		return false;
-	});
+		/* Plugin install related JS*/
+		$( '#plugin-information-tabs a' ).click( function( event ) {
+			var tab = $( this ).attr( 'name' );
+			event.preventDefault();
+			//Flip the tab
+			$( '#plugin-information-tabs a.current' ).removeClass( 'current' );
+			$( this ).addClass( 'current' );
+			//Only show the fyi box in the description section, on smaller screen, where it's otherwise always displayed at the top.
+			if ( 'description' != $( this ).attr( 'name' ) && $( 'body').width() < 830 )
+				$( '#plugin-information-content div.fyi' ).hide();
+			else
+				$( '#plugin-information-content div.fyi' ).show();
+			//Flip the content.
+			$( '#section-holder div.section' ).hide(); //Hide 'em all
+			$( '#section-' + tab ).show();
+		});
 
-	/* Plugin install related JS*/
-	$( '#plugin-information-tabs a' ).click( function( event ) {
-		var tab = $( this ).attr( 'name' );
-		event.preventDefault();
-		//Flip the tab
-		$( '#plugin-information-tabs a.current' ).removeClass( 'current' );
-		$( this ).addClass( 'current' );
-		//Only show the fyi box in the description section, on smaller screen, where it's otherwise always displayed at the top.
-		if ( 'description' != $( this ).attr( 'name' ) && $( 'body').width() < 830 )
-			$( '#plugin-information-content div.fyi' ).hide();
-		else
-			$( '#plugin-information-content div.fyi' ).show();
-		//Flip the content.
-		$( '#section-holder div.section' ).hide(); //Hide 'em all
-		$( '#section-' + tab ).show();
+		$( 'a.install-now' ).click( function() {
+			return confirm( l10n.ays );
+		});
 	});
 
-	$( 'a.install-now' ).click( function() {
-		return confirm( plugininstallL10n.ays );
-	});
-});
+})( jQuery );
Index: src/wp-admin/js/theme.js
===================================================================
--- src/wp-admin/js/theme.js	(revision 29119)
+++ src/wp-admin/js/theme.js	(working copy)
@@ -1497,14 +1497,14 @@
 	searchContainer: $( '.theme-navigation' ),
 
 	uploader: function() {
-		$( 'a.upload' ).on( 'click', function( event ) {
+		$( '.wp-upload-show' ).on( 'click', function( event ) {
 			event.preventDefault();
-			$( 'body' ).addClass( 'show-upload-theme' );
+			$( 'body' ).addClass( 'show-upload-container' );
 			themes.router.navigate( themes.router.baseUrl( '?upload' ), { replace: true } );
 		});
-		$( 'a.browse-themes' ).on( 'click', function( event ) {
+		$( '.wp-upload-hide' ).on( 'click', function( event ) {
 			event.preventDefault();
-			$( 'body' ).removeClass( 'show-upload-theme' );
+			$( 'body' ).removeClass( 'show-upload-container' );
 			themes.router.navigate( themes.router.baseUrl( '' ), { replace: true } );
 		});
 	},
@@ -1642,7 +1642,7 @@
 
 		// Support the `upload` route by going straight to upload section
 		themes.router.on( 'route:upload', function() {
-			$( 'a.upload' ).trigger( 'click' );
+			$( '.wp-upload-show' ).trigger( 'click' );
 		});
 
 		// The `search` route event. The router populates the input field.
Index: src/wp-admin/plugin-install.php
===================================================================
--- src/wp-admin/plugin-install.php	(revision 29119)
+++ src/wp-admin/plugin-install.php	(working copy)
@@ -29,7 +29,22 @@
 $title = __('Install Plugins');
 $parent_file = 'plugins.php';
 
+wp_localize_script( 'plugin-install', '_wpPluginSettings', array(
+	'plugins' => false,
+	'settings' => array(
+		'isInstall'     => true,
+		'canInstall'    => current_user_can( 'install_plugins' ),
+		'installURI'    => current_user_can( 'install_plugins' ) ? self_admin_url( 'plugin-install.php' ) : null,
+		'adminUrl'      => parse_url( self_admin_url(), PHP_URL_PATH )
+	),
+	'l10n' => array(
+		'pluginInformation' => __('Plugin Information:'),
+		'ays' => __('Are you sure you want to install this plugin?')
+	),
+) );
+
 wp_enqueue_script( 'plugin-install' );
+
 if ( 'plugin-information' != $tab )
 	add_thickbox();
 
@@ -73,24 +88,33 @@
 include(ABSPATH . 'wp-admin/admin-header.php');
 ?>
 <div class="wrap">
-<h2><?php echo esc_html( $title ); ?></h2>
+	<h2>
+		<?php echo esc_html( $title ); ?>
+		
+		<a href="#" class="wp-upload-show add-new-h2"><?php echo __( 'Upload Plugin' ); ?></a>
+		<a href="#" class="wp-upload-hide add-new-h2"><?php echo __( 'Browse', 'plugins' ); ?></a>
+	</h2>
 
-<?php $wp_list_table->views(); ?>
+	<?php install_plugins_upload(); ?>
 
-<br class="clear" />
-<?php
-/**
- * Fires after the plugins list table in each tab of the Install Plugins screen.
- *
- * The dynamic portion of the action hook, $tab, allows for targeting
- * individual tabs, for instance 'install_plugins_plugin-information'.
- *
- * @since 2.7.0
- *
- * @param int $paged The current page number of the plugins list table.
- */
-?>
-<?php do_action( "install_plugins_$tab", $paged ); ?>
+	<div class="hide-on-upload">
+		<?php $wp_list_table->views(); ?>
+	
+		<br class="clear" />
+	
+		<?php
+		/**
+		 * Fires after the plugins list table in each tab of the Install Plugins screen.
+		 *
+		 * The dynamic portion of the action hook, $tab, allows for targeting
+		 * individual tabs, for instance 'install_plugins_plugin-information'.
+		 *
+		 * @since 2.7.0
+		 *
+		 * @param int $paged The current page number of the plugins list table.
+		 */
+		do_action( "install_plugins_$tab", $paged ); ?>
+	</div>
 </div>
 <?php
 /**
Index: src/wp-admin/theme-install.php
===================================================================
--- src/wp-admin/theme-install.php	(revision 29119)
+++ src/wp-admin/theme-install.php	(working copy)
@@ -125,16 +125,16 @@
 		 */
 		$tabs = apply_filters( 'install_themes_tabs', $tabs );
 		foreach ( $tabs as $tab_slug => $tab_name ) {
-			echo '<a href="#" class="' . esc_attr( $tab_slug ) . ' add-new-h2">' . $tab_name . '</a>';
+			$visibility = $tab_slug == 'upload' ? ' wp-upload-show' : ' wp-upload-hide';
+			
+			echo '<a href="#" class="' . esc_attr( $tab_slug ) . $visibility . ' add-new-h2">' . $tab_name . '</a>';
 		}
 		?>
 	</h2>
 
-	<div class="upload-theme">
 	<?php install_themes_upload(); ?>
-	</div>
 
-	<div class="theme-navigation">
+	<div class="theme-navigation hide-on-upload">
 		<span class="theme-count"></span>
 		<a class="theme-section" href="#" data-sort="featured"><?php _ex( 'Featured', 'themes' ); ?></a>
 		<a class="theme-section" href="#" data-sort="popular"><?php _ex( 'Popular', 'themes' ); ?></a>
@@ -175,7 +175,7 @@
 			</div>
 		</div>
 	</div>
-	<div class="theme-browser"></div>
+	<div class="theme-browser hide-on-upload"></div>
 	<div class="theme-install-overlay wp-full-overlay expanded"></div>
 
 	<p class="no-themes"><?php _e( 'No themes found. Try a different search.' ); ?></p>
Index: src/wp-includes/script-loader.php
===================================================================
--- src/wp-includes/script-loader.php	(revision 29119)
+++ src/wp-includes/script-loader.php	(working copy)
@@ -488,11 +488,7 @@
 			'error' => __('Error while saving the changes.')
 		) );
 
-		$scripts->add( 'plugin-install', "/wp-admin/js/plugin-install$suffix.js", array( 'jquery', 'thickbox' ), false, 1 );
-		did_action( 'init' ) && $scripts->localize( 'plugin-install', 'plugininstallL10n', array(
-			'plugin_information' => __('Plugin Information:'),
-			'ays' => __('Are you sure you want to install this plugin?')
-		) );
++		$scripts->add( 'plugin-install', "/wp-admin/js/plugin-install$suffix.js", array( 'wp-backbone' ), false, 1 );
 
 		$scripts->add( 'updates', "/wp-admin/js/updates$suffix.js", array( 'jquery' ) );
 
