Index: wp-includes/script-loader.php
===================================================================
--- wp-includes/script-loader.php	(revision 19885)
+++ wp-includes/script-loader.php	(working copy)
@@ -260,6 +260,8 @@
 
 	$scripts->add( 'user-profile', "/wp-admin/js/user-profile$suffix.js", array( 'jquery', 'password-strength-meter' ), false, 1 );
 
+	$scripts->add( 'user-search', "/wp-admin/js/user-search$suffix.js", array( 'jquery-ui-autocomplete' ), false, 1 );
+
 	$scripts->add( 'admin-bar', "/wp-includes/js/admin-bar$suffix.js", array(), false, 1 );
 
 	$scripts->add( 'wplink', "/wp-includes/js/wplink$suffix.js", array( 'jquery', 'wpdialogs' ), false, 1 );
Index: wp-admin/admin-ajax.php
===================================================================
--- wp-admin/admin-ajax.php	(revision 19885)
+++ wp-admin/admin-ajax.php	(working copy)
@@ -34,7 +34,7 @@
 
 do_action( 'admin_init' );
 
-$core_actions_get = array( 'fetch-list', 'ajax-tag-search', 'wp-compression-test', 'imgedit-preview', 'oembed_cache' );
+$core_actions_get = array( 'fetch-list', 'ajax-tag-search', 'wp-compression-test', 'imgedit-preview', 'oembed_cache', 'autocomplete-user' );
 
 $core_actions_post = array(
 	'oembed_cache', 'image-editor', 'delete-comment', 'delete-tag', 'delete-link',
Index: wp-admin/includes/ajax-actions.php
===================================================================
--- wp-admin/includes/ajax-actions.php	(revision 19885)
+++ wp-admin/includes/ajax-actions.php	(working copy)
@@ -149,6 +149,38 @@
 	wp_die( $return );
 }
 
+function wp_ajax_autocomplete_user() {
+	if ( !is_multisite() || !current_user_can( 'promote_users' ) || wp_is_large_network( 'users' ) || !is_super_admin() && apply_filters( 'autocomplete_users_for_site_admins', false ) )
+		wp_die( -1 );
+	
+	$return = array();
+
+	// Exclude current users of this blog
+	if ( isset( $_REQUEST['site_id'] ) )
+		$id = absint( $_REQUEST['site_id'] );
+	else
+		$id = get_current_blog_id();
+
+	$this_blog_users = get_users( array( 'blog_id' => $id, 'fields' => 'ID' ) );
+
+	$users = get_users( array(
+		'blog_id' => false,
+		'search'  => '*' . $_REQUEST['term'] . '*',
+		'exclude' => $this_blog_users,
+		'search_columns' => array( 'user_login', 'user_nicename', 'user_email' ),
+	) );	
+
+	foreach ( $users as $user ) {
+		$return[] = array(
+			/* translators: 1: user_login, 2: user_email */
+			'label' => sprintf( __( '%1$s (%2$s)' ), $user->user_login, $user->user_email ),
+			'value' => $user->user_login,
+		);
+	}
+
+	wp_die( json_encode( $return ) );
+}
+
 /*
  * Ajax helper.
  */
Index: wp-admin/js/user-search.dev.js
===================================================================
--- wp-admin/js/user-search.dev.js	(revision 0)
+++ wp-admin/js/user-search.dev.js	(revision 0)
@@ -0,0 +1,9 @@
+jQuery( function($) {
+	var id = current_site_id ? '&site_id=' + current_site_id : '';
+
+	$( '#adduser-email, #newuser' ).autocomplete({
+		source:   ajaxurl + '?action=autocomplete-user' + id,
+		delay:    500,
+		minLength: 2,
+	});
+});
\ No newline at end of file
Index: wp-admin/user-new.php
===================================================================
--- wp-admin/user-new.php	(revision 19885)
+++ wp-admin/user-new.php	(working copy)
@@ -178,8 +178,10 @@
 
 wp_enqueue_script('wp-ajax-response');
 wp_enqueue_script('user-profile');
+if ( is_multisite() && current_user_can( 'promote_users' ) && !wp_is_large_network( 'users' ) && is_super_admin() || apply_filters( 'autocomplete_users_for_site_admins', false ) )
+	wp_enqueue_script( 'user-search' );
 
-require_once ('admin-header.php');
+require_once( 'admin-header.php' );
 
 if ( isset($_GET['update']) ) {
 	$messages = array();
Index: wp-admin/network/site-users.php
===================================================================
--- wp-admin/network/site-users.php	(revision 19885)
+++ wp-admin/network/site-users.php	(working copy)
@@ -171,8 +171,18 @@
 $parent_file = 'sites.php';
 $submenu_file = 'sites.php';
 
+if ( current_user_can( 'promote_users' ) && apply_filters( 'show_network_site_users_add_existing_form', true ) && !wp_is_large_network( 'users' ) )
+	wp_enqueue_script( 'user-search' );
+
 require('../admin-header.php'); ?>
 
+<script type='text/javascript'>
+/* <![CDATA[ */
+var current_site_id = <?php echo $id; ?>;
+/* ]]> */
+</script>
+
+
 <div class="wrap">
 <?php screen_icon('ms-admin'); ?>
 <h2 id="edit-site"><?php echo $title_site_url_linked ?></h2>
Index: wp-admin/css/wp-admin.dev.css
===================================================================
--- wp-admin/css/wp-admin.dev.css	(revision 19885)
+++ wp-admin/css/wp-admin.dev.css	(working copy)
@@ -892,7 +892,46 @@
 	margin: 0;
 }
 
+input[type="text"].ui-autocomplete-loading {
+	background: transparent url('../images/loading.gif') no-repeat right center;
+	visibility: visible;
+}
 
+ul#add-to-blog-users {
+	margin: 0 0 0 14px;
+}
+
+.ui-autocomplete {
+	padding: 0;
+	margin: 0;
+	list-style: none;
+	position: absolute;
+	z-index: 10000;
+	border-width: 1px;
+	border-style: solid;
+
+	background-color: #ececec;
+	border-color: gray;
+}
+
+.ui-autocomplete li {
+	padding: 2px 5px;
+	white-space: nowrap;
+	text-align: left;
+	color: #101010;
+}
+
+.ui-autocomplete li a {
+	display: block;
+	height: 100%;
+	padding: 2px 5px;
+	color: #333;
+}
+
+.ui-autocomplete li a.ui-state-hover {
+	background-color: #f0f0b8;
+}
+
 /*------------------------------------------------------------------------------
   3.0 - Actions
 ------------------------------------------------------------------------------*/
