Index: src/wp-admin/includes/ajax-actions.php
===================================================================
--- src/wp-admin/includes/ajax-actions.php	(revision 28155)
+++ src/wp-admin/includes/ajax-actions.php	(working copy)
@@ -2217,7 +2217,11 @@
 		wp_send_json_error();
 	}
 
-	$args = wp_parse_args( wp_unslash( $_REQUEST['request'] ), array(
+	$request = wp_unslash( $_REQUEST['request'] );
+	$is_network = $request['is_network'];
+	unset( $request['is_network'] );
+
+	$args = wp_parse_args( $request, array(
 		'per_page' => 20,
 		'fields'   => $theme_field_defaults
 	) );
@@ -2233,7 +2237,7 @@
 		wp_send_json_error();
 	}
 
-	$update_php = self_admin_url( 'update.php?action=install-theme' );
+	$update_php = $is_network ? network_admin_url( 'update.php?action=install-theme' ) : admin_url( 'update.php?action=install-theme' );
 	foreach ( $api->themes as &$theme ) {
 		$theme->install_url = add_query_arg( array(
 			'theme'    => $theme->slug,
Index: src/wp-admin/js/theme.js
===================================================================
--- src/wp-admin/js/theme.js	(revision 28155)
+++ src/wp-admin/js/theme.js	(working copy)
@@ -318,6 +318,7 @@
 			data: {
 			// Request data
 				request: _.extend({
+					is_network: themes.data.settings.isNetwork,
 					per_page: 100,
 					fields: {
 						description: true,
Index: src/wp-admin/theme-install.php
===================================================================
--- src/wp-admin/theme-install.php	(revision 28155)
+++ src/wp-admin/theme-install.php	(working copy)
@@ -46,7 +46,8 @@
 		'isInstall'     => true,
 		'canInstall'    => current_user_can( 'install_themes' ),
 		'installURI'    => current_user_can( 'install_themes' ) ? self_admin_url( 'theme-install.php' ) : null,
-		'adminUrl'      => parse_url( self_admin_url(), PHP_URL_PATH )
+		'adminUrl'      => parse_url( self_admin_url(), PHP_URL_PATH ),
+		'isNetwork'     => is_network_admin()
 	),
 	'l10n' => array(
 		'addNew' => __( 'Add New Theme' ),
