diff --git src/wp-admin/includes/user.php src/wp-admin/includes/user.php
index 3348e43..132ea6d 100644
--- src/wp-admin/includes/user.php
+++ src/wp-admin/includes/user.php
@@ -176,7 +176,7 @@ function edit_user( $user_id = 0 ) {
 		$user_id = wp_update_user( $user );
 	} else {
 		$user_id = wp_insert_user( $user );
-		wp_new_user_notification( $user_id );
+		wp_new_user_notification( $user_id, 'both' );
 	}
 	return $user_id;
 }
diff --git src/wp-admin/network/site-new.php src/wp-admin/network/site-new.php
index cf36617..8dec36c 100644
--- src/wp-admin/network/site-new.php
+++ src/wp-admin/network/site-new.php
@@ -79,7 +79,7 @@ if ( isset($_REQUEST['action']) && 'add-site' == $_REQUEST['action'] ) {
 		if ( false === $user_id )
 			wp_die( __( 'There was an error creating the user.' ) );
 		else
-			wp_new_user_notification( $user_id, $password );
+			wp_new_user_notification( $user_id, 'both' );
 	}
 
 	$wpdb->hide_errors();
diff --git src/wp-admin/network/site-users.php src/wp-admin/network/site-users.php
index 0fcead5..0ab1771 100644
--- src/wp-admin/network/site-users.php
+++ src/wp-admin/network/site-users.php
@@ -77,7 +77,7 @@ if ( $action ) {
 				if ( false === $user_id ) {
 		 			$update = 'err_new_dup';
 				} else {
-					wp_new_user_notification( $user_id, $password );
+					wp_new_user_notification( $user_id, 'both' );
 					add_user_to_blog( $id, $user_id, $_POST['new_role'] );
 					$update = 'newuser';
 				}
diff --git src/wp-admin/network/user-new.php src/wp-admin/network/user-new.php
index ba89697..002e098 100644
--- src/wp-admin/network/user-new.php
+++ src/wp-admin/network/user-new.php
@@ -51,7 +51,7 @@ if ( isset($_REQUEST['action']) && 'add-user' == $_REQUEST['action'] ) {
 		if ( ! $user_id ) {
 	 		$add_user_errors = new WP_Error( 'add_user_fail', __( 'Cannot add user.' ) );
 		} else {
-			wp_new_user_notification( $user_id, $password );
+			wp_new_user_notification( $user_id, 'both' );
 			wp_redirect( add_query_arg( array('update' => 'added'), 'user-new.php' ) );
 			exit;
 		}
diff --git src/wp-includes/pluggable.php src/wp-includes/pluggable.php
index 655fc55..dae968e 100644
--- src/wp-includes/pluggable.php
+++ src/wp-includes/pluggable.php
@@ -1689,9 +1689,11 @@ if ( !function_exists('wp_new_user_notification') ) :
  *
  * @since 2.0.0
  *
- * @param int    $user_id        User ID.
+ * @param int    $user_id User ID.
+ * @param string $notify  Whether admin and user should be notified ('both') or
+ *                        only the admin ('admin' or empty).
  */
-function wp_new_user_notification($user_id) {
+function wp_new_user_notification( $user_id, $notify = '' ) {
 	global $wpdb;
 	$user = get_userdata( $user_id );
 
@@ -1705,9 +1707,14 @@ function wp_new_user_notification($user_id) {
 
 	@wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), $blogname), $message);
 
+	if ( 'admin' === $notify || empty( $notify ) ) {
+		return;
+	}
+
 	// Generate something random for a password reset key.
 	$key = wp_generate_password( 20, false );
 
+	/** This action is documented in wp-login.php */
 	do_action( 'retrieve_password_key', $user->user_login, $key );
 
 	// Now insert the key, hashed, into the DB.
diff --git src/wp-includes/user.php src/wp-includes/user.php
index 54b09ff..1cd2db2 100644
--- src/wp-includes/user.php
+++ src/wp-includes/user.php
@@ -2619,7 +2619,7 @@ function register_new_user( $user_login, $user_email ) {
 
 	update_user_option( $user_id, 'default_password_nag', true, true ); //Set up the Password change nag.
 
-	wp_new_user_notification( $user_id );
+	wp_new_user_notification( $user_id, 'both' );
 
 	return $user_id;
 }
