Index: wp-includes/script-loader.php
===================================================================
--- wp-includes/script-loader.php	(revision 19809)
+++ 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-new', "/wp-admin/js/user-new$suffix.js", array( 'jquery', 'jquery-ui-autocomplete' ), '20120125', 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 19809)
+++ wp-admin/admin-ajax.php	(working copy)
@@ -34,7 +34,7 @@
 
 do_action( 'admin_init' );
 
-$core_actions_get = array( 'fetch-list', 'ajax-tag-search', 'compression-test', 'imgedit-preview', 'oembed_cache' );
+$core_actions_get = array( 'fetch-list', 'ajax-tag-search', '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 19809)
+++ wp-admin/includes/ajax-actions.php	(working copy)
@@ -146,6 +146,39 @@
 	wp_die( $return );
 }
 
+function wp_ajax_autocomplete_user() {
+	$return = array();
+
+	// Exclude current users of this blog
+	$this_blog_users = new WP_User_Query( array(
+		'blog_id' => get_current_blog_id()
+	) );
+	
+	$tbu_ids = array();
+	if ( !empty( $this_blog_users->results ) ) {
+		foreach( $this_blog_users->results as $this_blog_user ) {
+			$tbu_ids[] = $this_blog_user->ID;
+		}
+	}
+
+	$users = new WP_User_Query( array(
+		'blog_id' => false,
+		'search'  => '*' . $_REQUEST['term'] . '*',
+		'exclude' => $tbu_ids
+	) );
+	
+	if ( !empty( $users->results ) ) {
+		foreach ( $users->results as $user ) {
+			$return[] = array(
+				'label' => $user->user_login . ' (' . $user->user_email . ')',
+				'value' => $user->user_login,
+			);
+		}
+	}
+	
+	die( json_encode( $return ) );
+}
+
 /*
  * Ajax helper.
  */
Index: wp-admin/js/user-new.dev.js
===================================================================
--- wp-admin/js/user-new.dev.js	(revision 0)
+++ wp-admin/js/user-new.dev.js	(working copy)
@@ -0,0 +1,17 @@
+(function($){	
+	var ainput = $('#adduser-email');
+
+	$(document).ready(function() {
+				
+		var options = {
+			source: ajaxurl + '?action=autocomplete-user',
+			appendTo: 'form#adduser',
+			select: function( event, ui ){ $(ainput).val( ui.item.value ); },
+			delay: 500, // milliseconds
+			minLength: 2, // Don't want to match a crazy number of items.
+		};
+
+		a = $(ainput).autocomplete(options);
+	});
+
+})(jQuery);
Index: wp-admin/css/wp-admin.dev.css
===================================================================
--- wp-admin/css/wp-admin.dev.css	(revision 19809)
+++ wp-admin/css/wp-admin.dev.css	(working copy)
@@ -892,7 +892,68 @@
 	margin: 0;
 }
 
+#wpcontent 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;
+}
+
+form#adduser ul.ui-autocomplete {
+	padding: 0;
+	margin: 0;
+	list-style: none;
+	position: absolute;
+	z-index: 10000;
+	border-width: 1px;
+	border-style: solid;
+
+	background-color: #ffffff;
+	border-color: gray;
+}
+
+form#adduser .ui-widget-content { 
+	background: #ececec;
+}
+
+form#adduser .ui-widget-content li { 
+	padding: 2px 5px;
+	white-space: nowrap;
+	text-align: left;
+	color: #101010;
+}
+
+form#adduser .ui-widget-content li a {
+	display: block;
+	height: 100%;
+	padding: 2px 5px;
+	color: #333;
+}
+
+form#adduser .ui-widget-content li a.ui-state-hover {
+	background-color: #f0f0b8;
+}
+
+form#adduser a.remove {
+	margin: 6px 0pt 0pt -12px;
+	cursor: pointer;
+	width: 10px;
+	height: 10px;
+	display: block;
+	float: left;
+	text-indent: -9999px;
+	overflow: hidden;
+	position: absolute;
+	background: transparent url(../images/xit.gif) no-repeat;
+}
+
+form#adduser a.remove:hover {
+	background: transparent url(../images/xit.gif) no-repeat -10px 0;
+}
+
+
 /*------------------------------------------------------------------------------
   3.0 - Actions
 ------------------------------------------------------------------------------*/
Index: wp-admin/user-new.php
===================================================================
--- wp-admin/user-new.php	(revision 19809)
+++ wp-admin/user-new.php	(working copy)
@@ -178,6 +178,8 @@
 
 wp_enqueue_script('wp-ajax-response');
 wp_enqueue_script('user-profile');
+wp_enqueue_script('user-new');
+wp_enqueue_script('jquery-ui-autocomplete');
 
 require_once ('admin-header.php');
 
