diff --git src/wp-admin/network/user-new.php src/wp-admin/network/user-new.php
index 29fd63d..0078943 100644
--- src/wp-admin/network/user-new.php
+++ src/wp-admin/network/user-new.php
@@ -76,6 +76,11 @@ if ( ! empty( $messages ) ) {
 		echo '<div id="message" class="updated"><p>' . $msg . '</p></div>';
 }
 
+// Pre-fill values in case of a previous failed submission
+foreach ( array( 'username', 'email' ) as $post_key ) {
+	$$post_key = isset( $_POST['user'][ $post_key ] ) ? stripslashes( $_POST['user'][ $post_key ] ) : '';
+}
+
 if ( isset( $add_user_errors ) && is_wp_error( $add_user_errors ) ) { ?>
 	<div class="error">
 		<?php
@@ -88,11 +93,11 @@ if ( isset( $add_user_errors ) && is_wp_error( $add_user_errors ) ) { ?>
 	<table class="form-table">
 		<tr class="form-field form-required">
 			<th scope="row"><?php _e( 'Username' ) ?></th>
-			<td><input type="text" class="regular-text" name="user[username]" /></td>
+			<td><input type="text" class="regular-text" name="user[username]" value="<?php echo esc_attr( $username ) ?>" /></td>
 		</tr>
 		<tr class="form-field form-required">
 			<th scope="row"><?php _e( 'Email' ) ?></th>
-			<td><input type="text" class="regular-text" name="user[email]" /></td>
+			<td><input type="text" class="regular-text" name="user[email]" value="<?php echo esc_attr( $email ) ?>" /></td>
 		</tr>
 		<tr class="form-field">
 			<td colspan="2"><?php _e( 'Username and password will be mailed to the above email address.' ) ?></td>
diff --git src/wp-admin/user-new.php src/wp-admin/user-new.php
index b5c9c0b..6219188 100644
--- src/wp-admin/user-new.php
+++ src/wp-admin/user-new.php
@@ -41,19 +41,28 @@ if ( isset($_REQUEST['action']) && 'adduser' == $_REQUEST['action'] ) {
 	check_admin_referer( 'add-user', '_wpnonce_add-user' );
 
 	$user_details = null;
+	$redirect_args = array();
+	foreach ( array( 'email', 'role', 'noconfirmation' ) as $redirect_arg ) {
+		if ( isset( $_REQUEST[ $redirect_arg ] ) ) {
+			$redirect_args[ $redirect_arg ] = $_REQUEST[ $redirect_arg ];
+		}
+	}
+
 	if ( false !== strpos($_REQUEST[ 'email' ], '@') ) {
 		$user_details = get_user_by('email', $_REQUEST[ 'email' ]);
 	} else {
 		if ( is_super_admin() ) {
 			$user_details = get_user_by('login', $_REQUEST[ 'email' ]);
 		} else {
-			wp_redirect( add_query_arg( array('update' => 'enter_email'), 'user-new.php' ) );
+			$redirect_args['update'] = 'enter_email';
+			wp_redirect( add_query_arg( $redirect_args, 'user-new.php' ) );
 			die();
 		}
 	}
 
 	if ( !$user_details ) {
-		wp_redirect( add_query_arg( array('update' => 'does_not_exist'), 'user-new.php' ) );
+		$redirect_args['update'] = 'does_not_exist';
+		wp_redirect( add_query_arg( $redirect_args, 'user-new.php' ) );
 		die();
 	}
 
@@ -290,22 +299,30 @@ if ( is_multisite() ) {
 <input name="action" type="hidden" value="adduser" />
 <?php wp_nonce_field( 'add-user', '_wpnonce_add-user' ) ?>
 
+<?php
+// Pre-fill values in case of a previous failed submission
+foreach ( array( 'email' => 'adduser_email', 'role' => 'adduser_role', 'noconfirmation' => 'adduser_noconfirmation' ) as $adduser_key => $adduser_var ) {
+	$$adduser_var = isset( $_GET[ $adduser_key ] ) ? urldecode( $_GET[ $adduser_key ] ) : '';
+}
+?>
+
 <table class="form-table">
 	<tr class="form-field form-required">
 		<th scope="row"><label for="adduser-email"><?php echo $label; ?></label></th>
-		<td><input name="email" type="text" id="adduser-email" class="wp-suggest-user" value="" /></td>
+		<td><input name="email" type="text" id="adduser-email" class="wp-suggest-user" value="<?php echo esc_attr( $adduser_email ) ?>" /></td>
 	</tr>
 	<tr class="form-field">
 		<th scope="row"><label for="adduser-role"><?php _e('Role'); ?></label></th>
+		<?php $adduser_role_default = ! empty( $adduser_role ) ? $adduser_role : get_option( 'default_role' ); ?>
 		<td><select name="role" id="adduser-role">
-			<?php wp_dropdown_roles( get_option('default_role') ); ?>
+			<?php wp_dropdown_roles( $adduser_role_default ); ?>
 			</select>
 		</td>
 	</tr>
 <?php if ( is_super_admin() ) { ?>
 	<tr>
 		<th scope="row"><label for="adduser-noconfirmation"><?php _e('Skip Confirmation Email') ?></label></th>
-		<td><label for="adduser-noconfirmation"><input type="checkbox" name="noconfirmation" id="adduser-noconfirmation" value="1" /> <?php _e( 'Add the user without sending them a confirmation email.' ); ?></label></td>
+		<td><label for="adduser-noconfirmation"><input type="checkbox" name="noconfirmation" id="adduser-noconfirmation" value="1" <?php checked( $adduser_noconfirmation, '1' ) ?>/> <?php _e( 'Add the user without sending them a confirmation email.' ); ?></label></td>
 	</tr>
 <?php } ?>
 </table>
