Index: wp-admin/network/themes.php
===================================================================
--- wp-admin/network/themes.php	(revision 17128)
+++ wp-admin/network/themes.php	(working copy)
@@ -37,37 +37,41 @@
 			check_admin_referer('enable-theme_' . $_GET['theme']);
 			$allowed_themes[ $_GET['theme'] ] = true;
 			update_site_option( 'allowedthemes', $allowed_themes );
-			wp_redirect( wp_get_referer() ); // @todo add_query_arg for update message
-			exit;			
+			wp_redirect( add_query_arg( 'update', 'enabled', wp_get_referer() ) );
+			exit;
 			break;
 		case 'disable':
 			check_admin_referer('disable-theme_' . $_GET['theme']);
 			unset( $allowed_themes[ $_GET['theme'] ] );
 			update_site_option( 'allowedthemes', $allowed_themes );
-			wp_redirect( wp_get_referer() ); // @todo add_query_arg for update message
+			wp_redirect( add_query_arg( 'update', 'disabled', wp_get_referer() ) );
 			exit;
 			break;
 		case 'enable-selected':
 			check_admin_referer('bulk-themes');
 			$themes = isset( $_POST['checked'] ) ? (array) $_POST['checked'] : array();
 			if ( empty($themes) ) {
-				wp_redirect( wp_get_referer() );
+				wp_redirect( add_query_arg( 'update', 'error', wp_get_referer() ) );
 				exit;
-			}						
+			}
 			foreach( (array) $themes as $theme )
 				$allowed_themes[ $theme ] = true;
 			update_site_option( 'allowedthemes', $allowed_themes );
+			wp_redirect( add_query_arg( array( 'update' => 'enabled', 'n' => count( $themes ) ), wp_get_referer() ) );
+			exit;
 			break;
 		case 'disable-selected':
 			check_admin_referer('bulk-themes');
 			$themes = isset( $_POST['checked'] ) ? (array) $_POST['checked'] : array();
 			if ( empty($themes) ) {
-				wp_redirect( wp_get_referer() );
+				wp_redirect( add_query_arg( 'update', 'error', wp_get_referer() ) );
 				exit;
-			}						
+			}
 			foreach( (array) $themes as $theme )
 				unset( $allowed_themes[ $theme ] );
 			update_site_option( 'allowedthemes', $allowed_themes );
+			wp_redirect( add_query_arg( array( 'update' => 'disabled', 'n' => count( $themes ) ), wp_get_referer() ) );
+			exit;
 			break;
 		case 'delete-selected':
 			if ( ! current_user_can( 'delete_themes' ) )
@@ -76,7 +80,7 @@
 
 			$themes = isset( $_REQUEST['checked'] ) ? (array) $_REQUEST['checked'] : array();
 			if ( empty( $themes ) ) {
-				wp_redirect( wp_get_referer() );
+				wp_redirect( add_query_arg( 'update', 'error', wp_get_referer() ) );
 				exit;
 			}
 
@@ -149,7 +153,7 @@
 
 			foreach ( $themes as $theme )
 				$delete_result = delete_theme( $theme );
-			wp_redirect( network_admin_url( 'themes.php?deleted=true' ) );
+			wp_redirect( network_admin_url( 'themes.php?update=deleted&n=' . count($themes) ) );
 			exit;
 			break;
 	}
@@ -174,9 +178,7 @@
 
 require_once(ABSPATH . 'wp-admin/admin-header.php');
 
-if ( isset( $_GET['deleted'] ) ) : ?>
-<div class="updated"><p><?php _e('Theme deleted.') ?></p></div><?php
-elseif ( isset( $_GET['error'] ) && 'main' == $_GET['error'] ) : ?>
+if ( isset( $_GET['error'] ) && 'main' == $_GET['error'] ) : ?>
 <div class="error"><p><?php _e( 'You cannot delete a theme while it is active on the main site.' ); ?></p></div><?php
 endif;
 ?>
@@ -188,6 +190,34 @@
 	printf( '<span class="subtitle">' . __('Search results for &#8220;%s&#8221;') . '</span>', esc_html( $s ) ); ?> 
 </h2>
 
+<?php
+if ( isset( $_GET['update'] ) ) {
+	switch ( $_GET['update'] ) {
+	case 'enabled':
+		if ( !empty( $_GET['n'] ) )
+			echo '<div id="message" class="updated"><p>' . sprintf( _n( '%s theme enabled.', '%s themes enabled.', $_GET['n'] ), number_format_i18n( $_GET['n'] ) ) . '</p></div>';
+		else
+			echo '<div id="message" class="updated"><p>' . __( 'Theme enabled.' ) . '</p></div>';
+		break;
+	case 'disabled':
+		if ( !empty( $_GET['n'] ) )
+			echo '<div id="message" class="updated"><p>' . sprintf( _n( '%s theme disabled.', '%s themes disabled.', $_GET['n'] ), number_format_i18n( $_GET['n'] ) ) . '</p></div>';
+		else
+			echo '<div id="message" class="updated"><p>' . __( 'Theme disabled.' ) . '</p></div>';
+		break;
+	case 'deleted':
+		if ( !empty( $_GET['n'] ) )
+			echo '<div id="message" class="updated"><p>' . sprintf( _n( '%s theme deleted.', '%s themes deleted.', $_GET['n'] ), number_format_i18n( $_GET['n'] ) ) . '</p></div>';
+		else
+			echo '<div id="message" class="updated"><p>' . __( 'Theme deleted.' ) . '</p></div>';
+		break;
+	case 'error':
+		echo '<div id="message" class="error"><p>' . __( 'No theme selected.' ) . '</p></div>';
+		break;
+	}
+}
+?>
+
 <form method="get" action="">
 <?php $wp_list_table->search_box( __( 'Search Installed Themes' ), 'theme' ); ?>
 </form>
