Index: wp-admin/network/user-new.php
===================================================================
--- wp-admin/network/user-new.php	(revision 18028)
+++ wp-admin/network/user-new.php	(working copy)
@@ -33,21 +33,18 @@
 	if ( is_array( $_POST['user'] ) == false )
 		wp_die( __( 'Cannot create an empty user.' ) );
 	$user = $_POST['user'];
-	if ( empty($user['username']) && empty($user['email']) )
-		wp_die( __( 'Missing username and email.' ) );
-	elseif ( empty($user['username']) )
-		wp_die( __( 'Missing username.' ) );
-	elseif ( empty($user['email']) )
-		wp_die( __( 'Missing email.' ) );

-	$password = wp_generate_password( 12, false);
+	$user_details = wpmu_validate_user_signup( $user['username'], $user['email'] );
+
+	if ( is_wp_error( $user_details[ 'errors' ] ) && ! empty( $user_details[ 'errors' ]->errors ) ) {
+		$messages = implode( "<br />\n", $user_details[ 'errors' ]->get_error_messages() );
+		wp_die( $messages );
+	}
+
+	$password = wp_generate_password( 12, false );
 	$user_id = wpmu_create_user( esc_html( strtolower( $user['username'] ) ), $password, esc_html( $user['email'] ) );
+	wp_new_user_notification( $user_id, $password );

-	if ( false == $user_id )
- 		wp_die( __( 'Duplicated username or email address.' ) );
-	else
-		wp_new_user_notification( $user_id, $password );
-
 	wp_redirect( add_query_arg( array('update' => 'added'), 'user-new.php' ) );
 	exit;
 }
@@ -71,7 +68,7 @@
 	foreach ( $messages as $msg )
 		echo '<div id="message" class="updated"><p>' . $msg . '</p></div>';
 } ?>
-	<form action="<?php echo network_admin_url('user-new.php?action=add-user'); ?>" id="adduser" method="post">
+	<form action="<?php echo network_admin_url('user-new.php?action=add-user'); ?>" id="adduser" method="post">
 	<table class="form-table">
 		<tr class="form-field form-required">
 			<th scope="row"><?php _e( 'Username' ) ?></th>
@@ -91,4 +88,4 @@
 </div>
 <?php
 require('../admin-footer.php');
-?>
\ No newline at end of file
+?>
