Index: wp-admin/edit-form-user.php
===================================================================
--- wp-admin/edit-form-user.php	(revision 0)
+++ wp-admin/edit-form-user.php	(revision 0)
@@ -0,0 +1,374 @@
+<?php
+/**
+ * User advanced form for inclusion in the administration panels.
+ *
+ * @package WordPress
+ * @subpackage Administration
+ */
+
+// All meta boxes should be defined and added before the first do_meta_boxes() call (or potentially during the do_meta_boxes action).
+
+/**
+ * Display user submit form fields.
+ *
+ * @since 2.8.0
+ *
+ * @param object $user
+ */
+function user_submit_meta_box($profileuser) {
+?>
+<div class="submitbox" id="submituser">
+	<div id="minor-publishing">
+		<div id="misc-publishing-actions">
+			<br /><br />
+		</div>
+		<div id="minor-publishing-actions">
+
+		</div>
+		<div class="clear"></div>
+	</div>
+	<div id="major-publishing-actions">
+		<div id="delete-action">
+		</div>
+		<div id="publishing-action">
+			<input type="submit" class="button-primary" value="<?php _e('Update'); ?>" />
+		</div>
+	<div class="clear"></div>
+	</div>
+</div>
+<?php
+}
+add_meta_box('submitdiv', $is_profile_page? __('Update Profile') : __('Update User'), 'user_submit_meta_box', $screen, 'side', 'core');
+
+/**
+ * Display user personal options form fields.
+ *
+ * @since 2.8.0
+ *
+ * @param object $user
+ */
+function user_personal_options_meta_box($profileuser) {
+	global $_wp_admin_css_colors;
+?>
+<div class="personal_options_box" id="personal_options_user">
+	<table class="form-table">
+<?php if ( rich_edit_exists() ) : // don't bother showing the option if the editor has been removed ?>
+	<tr>
+		<th scope="row">
+			<?php _e('Visual Editor')?>
+		</th>
+		<td>
+			<label for="rich_editing"><input name="rich_editing" type="checkbox" id="rich_editing" value="false" <?php checked('false', $profileuser->rich_editing); ?> />
+				 <?php _e('Disable the visual editor when writing'); ?>
+			</label>
+		</td>
+	</tr>
+<?php endif; ?>
+<?php if (count($_wp_admin_css_colors) > 1 ) : ?>
+	<tr>
+<th scope="row"><?php _e('Admin Color Scheme')?></th>
+<td><fieldset><legend class="hidden"><?php _e('Admin Color Scheme')?></legend>
+<?php
+$current_color = get_user_option('admin_color', $user_id);
+if ( empty($current_color) )
+	$current_color = 'fresh';
+foreach ( $_wp_admin_css_colors as $color => $color_info ): ?>
+<div class="color-option"><input name="admin_color" id="admin_color_<?php echo $color; ?>" type="radio" value="<?php echo $color ?>" class="tog" <?php checked($color, $current_color); ?> />
+	<table class="color-palette">
+	<tr>
+	<?php foreach ( $color_info->colors as $html_color ): ?>
+	<td style="background-color: <?php echo $html_color ?>" title="<?php echo $color ?>">&nbsp;</td>
+	<?php endforeach; ?>
+	</tr>
+	</table>
+
+	<label for="admin_color_<?php echo $color; ?>"><?php echo $color_info->name ?></label>
+</div>
+	<?php endforeach; ?>
+</fieldset></td>
+</tr>
+<tr>
+<th scope="row"><?php _e( 'Keyboard Shortcuts' ); ?></th>
+<td><label for="comment_shortcuts"><input type="checkbox" name="comment_shortcuts" id="comment_shortcuts" value="true" <?php if ( !empty($profileuser->comment_shortcuts) ) checked('true', $profileuser->comment_shortcuts); ?> /> <?php _e('Enable keyboard shortcuts for comment moderation. '); ?></label><?php _e('<a href="http://codex.wordpress.org/Keyboard_Shortcuts">More information</a>'); ?></td>
+</tr>
+<?php
+endif;
+do_action('personal_options', $profileuser);
+?>
+</table>
+<?php
+	$is_profile_page = ( defined('IS_PROFILE_PAGE') && IS_PROFILE_PAGE ) ? true : false;
+	if ( $is_profile_page )
+		do_action('profile_personal_options', $profileuser);
+?>
+
+</div>
+<?php
+}
+add_meta_box('personal_options_div', __('Personal Options'), 'user_personal_options_meta_box', $screen, 'normal', 'core');
+
+/**
+ * Display user contact info form fields.
+ *
+ * @since 2.8.0
+ *
+ * @param object $user
+ */
+function user_contact_infos_meta_box($profileuser) {
+?>
+<div class="contact_infos_box" id="contact_infos_user">
+<table class="form-table">
+<tr>
+	<th><label for="email"><?php _e('E-mail') ?></label></th>
+	<td><input type="text" name="email" id="email" value="<?php echo $profileuser->user_email ?>" class="regular-text" /><br /><span class='setting-description'><?php _e('Required.');?></span></td>
+</tr>
+
+<tr>
+	<th><label for="url"><?php _e('Website') ?></label></th>
+	<td><input type="text" name="url" id="url" value="<?php echo $profileuser->user_url ?>" class="regular-text code" /></td>
+</tr>
+
+<tr>
+	<th><label for="aim"><?php echo apply_filters('user_aim_label', __('AIM')); ?></label></th>
+	<td><input type="text" name="aim" id="aim" value="<?php echo $profileuser->aim ?>" class="regular-text" /></td>
+</tr>
+
+<tr>
+	<th><label for="yim"><?php echo apply_filters('user_yim_label', __('Yahoo IM')); ?></label></th>
+	<td><input type="text" name="yim" id="yim" value="<?php echo $profileuser->yim ?>" class="regular-text" /></td>
+</tr>
+
+<tr>
+	<th><label for="jabber"><?php echo apply_filters('user_jabber_label', __('Jabber / Google Talk')); ?></label></th>
+	<td><input type="text" name="jabber" id="jabber" value="<?php echo $profileuser->jabber ?>" class="regular-text" /></td>
+</tr>
+</table>
+</div>
+<?php
+}
+add_meta_box('contact_infos_div', __('Contact Info'), 'user_contact_infos_meta_box', $screen, 'normal', 'core');
+
+/**
+ * Display user about yourself form fields.
+ *
+ * @since 2.8.0
+ *
+ * @param object $user
+ */
+function user_about_yourself_meta_box($profileuser) {
+?>
+<div class="about_yourself_box" id="about_yourself_user">
+<table class="form-table">
+<tr>
+	<th><label for="description"><?php _e('Biographical Info'); ?></label></th>
+	<td><textarea name="description" id="description" rows="5" cols="30"><?php echo $profileuser->description ?></textarea><br /><span class='setting-description'><?php _e('Share a little biographical information to fill out your profile. This may be shown publicly.'); ?></span></td>
+</tr>
+</table>
+</div>
+<?php
+}
+add_meta_box('about_yourself_div', $is_profile_page? __('About Yourself') : __('About the user'), 'user_about_yourself_meta_box', $screen, 'normal', 'core');
+
+/**
+ * Display user Additional Capabilities form fields.
+ *
+ * @since 2.8.0
+ *
+ * @param object $user
+ */
+function user_additional_capabilities_meta_box($profileuser) {
+?>
+<div class="additional_capabilities_box" id="additional_capabilities_user">
+	<table width="99%" style="border: none;" cellspacing="2" cellpadding="3" class="editform">
+		<tr>
+			<th scope="row"><?php _e('Additional Capabilities') ?></th>
+			<td><?php
+			$output = '';
+			foreach($profileuser->caps as $cap => $value) {
+				if(!$wp_roles->is_role($cap)) {
+					if($output != '') $output .= ', ';
+					$output .= $value ? $cap : "Denied: {$cap}";
+				}
+			}
+			echo $output;
+			?></td>
+		</tr>
+	</table>
+</div>
+<?php
+}
+if (count($profileuser->caps) > count($profileuser->roles) && apply_filters('additional_capabilities_display', true))
+	add_meta_box('additional_capabilities_div', __('Additional Capabilities'), 'user_additional_capabilities_meta_box', $screen, 'normal', 'core');
+
+/**
+ * Display user password form fields.
+ *
+ * @since 2.8.0
+ *
+ * @param object $user
+ */
+function user_password_meta_box($profileuser) {
+	$is_profile_page = ( defined('IS_PROFILE_PAGE') && IS_PROFILE_PAGE ) ? true : false;
+?>
+<div class="password_box" id="password_user">
+<table class="form-table">
+<tr>
+	<th><label for="pass1"><?php _e('Type a new one'); ?></label></th>
+	<td><input type="password" name="pass1" id="pass1" size="16" value="" autocomplete="off" /></td>
+</tr>
+<tr>
+	<th><label for="pass2"><?php _e('Type again'); ?></label></th>
+	<td><input type="password" name="pass2" id="pass2" size="16" value="" autocomplete="off" /></td>
+</tr>
+<?php	if ( $is_profile_page ): ?>
+<tr>
+	<th><div id="pass-strength-result"><?php _e('Strength indicator'); ?></div></th>
+	<td><label for="pass2"><?php _e('Hint: Your password should be at least seven characters long. To make it stronger, use upper and lower case letters, numbers and symbols like ! " ? $ % ^ &amp; ).'); ?></label></td>
+</tr>
+<?php endif; ?>
+</table>
+</div>
+<?php
+}
+$show_password_fields = apply_filters('show_password_fields', true);
+if ( $show_password_fields ) 
+	add_meta_box('password_div', __('Change Password'), 'user_password_meta_box', $screen, 'side', 'core');
+
+/**
+ * Profile page starts here
+ *
+ * @since 2.8.0
+ *
+ */
+
+do_action('do_meta_boxes', $screen, 'normal', $profileuser);
+do_action('do_meta_boxes', $screen, 'side', $profileuser);
+
+include ('admin-header.php');
+?>
+<?php if ( isset($_GET['updated']) ) : ?>
+<div id="message" class="updated fade">
+	<p>
+		<strong>
+			<?php _e('User updated.') ?>
+		</strong>
+	</p>
+<?php 	if ( $wp_http_referer && !$is_profile_page ) : ?>
+	<p>
+		<a href="users.php">
+			<?php _e('&larr; Back to Authors and Users'); ?>
+		</a>
+	</p>
+<?php 	endif; ?>
+</div>
+<?php endif; ?>
+<?php if ( isset( $errors ) && is_wp_error( $errors ) ) : ?>
+<div class="error">
+	<ul>
+<?php		foreach( $errors->get_error_messages() as $message ) echo "<li>$message</li>"; ?>
+	</ul>
+</div>
+<?php endif; ?>
+<div class="wrap" id="profile-page">
+	<?php screen_icon(); ?>
+	<h2><?php echo wp_specialchars( $title ); ?></h2>
+
+	<form id="your-profile" action="" method="post">
+		<input type="hidden" name="action" value="update" />
+		<input type="hidden" name="from" value="profile" />
+		<input type="hidden" id="screen" value="<?php echo $screen; ?>" />
+		<input type="hidden" name="checkuser_id" value="<?php echo $user_ID ?>" />
+		<input type="hidden" name="user_id" id="user_id" value="<?php echo $user_id; ?>" />
+<?php if ( $wp_http_referer ) : ?>
+		<input type="hidden" name="wp_http_referer" value="<?php echo clean_url($wp_http_referer); ?>" />
+<?php endif; ?>
+		<?php wp_nonce_field('update-user_' . $user_id) ?>
+		<?php wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?>
+		<?php wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false ); ?>
+
+		<div id="poststuff" class="metabox-holder<?php echo 2 == $screen_layout_columns ? ' has-right-sidebar' : ''; ?>">
+			<div id="side-info-column" class="inner-sidebar">
+				<?php $side_meta_boxes = do_meta_boxes($screen, 'side', $profileuser); ?>
+			</div>
+			<div id="post-body">
+				<div id="post-body-content">
+					<table class="form-table">
+						<tr>
+							<th><label for="user_login"><?php _e('Username'); ?></label></th>
+							<td><input type="text" name="user_login" id="user_login" value="<?php echo $profileuser->user_login; ?>" disabled="disabled" class="regular-text" /><br /><span class='setting-description'><?php _e('Your username cannot be changed.'); ?></span></td>
+						</tr>
+<?php if ( !$is_profile_page ): ?>
+						<tr>
+							<th>
+								<label for="role">
+									<?php _e('Role:') ?>
+								</label>
+							</th>
+							<td>
+								<select name="role" id="role">
+<?php 
+// Get the highest/primary role for this user
+// TODO: create a function that does this: wp_get_user_role()
+
+$user_roles = $profileuser->roles;
+$user_role = array_shift($user_roles);
+wp_dropdown_roles($user_role);
+
+// print the 'no role' option. Make it selected if the user has no role yet.
+if ( $user_role )	echo '<option value="">' . __('&mdash; No role for this blog &mdash;') . '</option>';
+else			echo '<option value="" selected="selected">' . __('&mdash; No role for this blog &mdash;') . '</option>';
+?>
+
+								</select>
+							</td>
+						</tr>
+<?php endif; //!$is_profile_page ?>
+						<tr>
+							<th><label for="first_name"><?php _e('First name') ?></label></th>
+							<td><input type="text" name="first_name" id="first_name" value="<?php echo $profileuser->first_name ?>" class="regular-text" /></td>
+						</tr>
+						<tr>
+							<th><label for="last_name"><?php _e('Last name') ?></label></th>
+							<td><input type="text" name="last_name" id="last_name" value="<?php echo $profileuser->last_name ?>" class="regular-text" /></td>
+						</tr>
+						<tr>
+							<th><label for="nickname"><?php _e('Nickname') ?></label></th>
+							<td><input type="text" name="nickname" id="nickname" value="<?php echo $profileuser->nickname ?>" class="regular-text" /></td>
+						</tr>
+						<tr>
+							<th><label for="display_name"><?php _e('Display name publicly&nbsp;as') ?></label></th>
+							<td>
+								<select name="display_name" id="display_name">
+<?php
+$public_display = array();
+$public_display['display_displayname'] = $profileuser->display_name;
+$public_display['display_nickname'] = $profileuser->nickname;
+$public_display['display_username'] = $profileuser->user_login;
+$public_display['display_firstname'] = $profileuser->first_name;
+$public_display['display_firstlast'] = $profileuser->first_name.' '.$profileuser->last_name;
+$public_display['display_lastfirst'] = $profileuser->last_name.' '.$profileuser->first_name;
+$public_display = array_unique(array_filter(array_map('trim', $public_display)));
+foreach($public_display as $id => $item) {
+?>
+									<option id="<?php echo $id; ?>" value="<?php echo $item; ?>"><?php echo $item; ?></option>
+<?php
+}
+?>
+								</select>
+							</td>
+						</tr>
+					</table>
+					<br />
+<?php do_meta_boxes($screen, 'normal', $profileuser); ?>
+<?php
+	if ( $is_profile_page ) {
+		do_action('show_user_profile');
+	} else {
+		do_action('edit_user_profile');
+	}
+?>
+				</div>
+			</div>
+		</div><!-- /poststuff -->
+	</form>
+</div>
\ No newline at end of file
Index: wp-admin/includes/template.php
===================================================================
--- wp-admin/includes/template.php	(revision 11028)
+++ wp-admin/includes/template.php	(working copy)
@@ -3526,6 +3526,14 @@
 			$screen_layout_columns = get_user_option('screen_layout_link');
 			$num = 2;
 			break;
+		case 'user-edit':
+			$screen_layout_columns = get_user_option('screen_layout_user-edit');
+			$num = 2;
+			break;
+		case 'profile':
+			$screen_layout_columns = get_user_option('screen_layout_profile');
+			$num = 2;
+			break;
 		default:
 			$screen_layout_columns = 0;
 			return '';
Index: wp-admin/js/user.dev.js
===================================================================
--- wp-admin/js/user.dev.js	(revision 0)
+++ wp-admin/js/user.dev.js	(revision 0)
@@ -0,0 +1,11 @@
+jQuery(document).ready( function() {
+	// close postboxes that should be closed
+	jQuery('.if-js-closed').removeClass('if-js-closed').addClass('closed');
+
+	// show things that should be visible, hide what should be hidden
+	jQuery('.hide-if-no-js').show();
+	jQuery('.hide-if-js').hide();
+
+	// postboxes
+	postboxes.add_postbox_toggles(pagenow);
+});
Index: wp-admin/js/user.js
===================================================================
--- wp-admin/js/user.js	(revision 0)
+++ wp-admin/js/user.js	(revision 0)
@@ -0,0 +1,11 @@
+jQuery(document).ready( function() {
+	// close postboxes that should be closed
+	jQuery('.if-js-closed').removeClass('if-js-closed').addClass('closed');
+
+	// show things that should be visible, hide what should be hidden
+	jQuery('.hide-if-no-js').show();
+	jQuery('.hide-if-js').hide();
+
+	// postboxes
+	postboxes.add_postbox_toggles(pagenow);
+});
Index: wp-admin/user-edit.php
===================================================================
--- wp-admin/user-edit.php	(revision 11028)
+++ wp-admin/user-edit.php	(working copy)
@@ -148,250 +148,13 @@
 }
 
 default:
-$profileuser = get_user_to_edit($user_id);
+	if ( !current_user_can('edit_user', $user_id) )
+		wp_die(__('You do not have permission to edit this user.'));
 
-if ( !current_user_can('edit_user', $user_id) )
-	wp_die(__('You do not have permission to edit this user.'));
-
-include ('admin-header.php');
-?>
-
-<?php if ( isset($_GET['updated']) ) : ?>
-<div id="message" class="updated fade">
-	<p><strong><?php _e('User updated.') ?></strong></p>
-	<?php if ( $wp_http_referer && !$is_profile_page ) : ?>
-	<p><a href="users.php"><?php _e('&larr; Back to Authors and Users'); ?></a></p>
-	<?php endif; ?>
-</div>
-<?php endif; ?>
-<?php if ( isset( $errors ) && is_wp_error( $errors ) ) : ?>
-<div class="error">
-	<ul>
-	<?php
-	foreach( $errors->get_error_messages() as $message )
-		echo "<li>$message</li>";
-	?>
-	</ul>
-</div>
-<?php endif; ?>
-
-<div class="wrap" id="profile-page">
-<?php screen_icon(); ?>
-<h2><?php echo wp_specialchars( $title ); ?></h2>
-
-<form id="your-profile" action="" method="post">
-<?php wp_nonce_field('update-user_' . $user_id) ?>
-<?php if ( $wp_http_referer ) : ?>
-	<input type="hidden" name="wp_http_referer" value="<?php echo clean_url($wp_http_referer); ?>" />
-<?php endif; ?>
-<p>
-<input type="hidden" name="from" value="profile" />
-<input type="hidden" name="checkuser_id" value="<?php echo $user_ID ?>" />
-</p>
-
-<h3><?php _e('Personal Options'); ?></h3>
-
-<table class="form-table">
-<?php if ( rich_edit_exists() ) : // don't bother showing the option if the editor has been removed ?>
-	<tr>
-		<th scope="row"><?php _e('Visual Editor')?></th>
-		<td><label for="rich_editing"><input name="rich_editing" type="checkbox" id="rich_editing" value="false" <?php checked('false', $profileuser->rich_editing); ?> /> <?php _e('Disable the visual editor when writing'); ?></label></td>
-	</tr>
-<?php endif; ?>
-<?php if (count($_wp_admin_css_colors) > 1 ) : ?>
-<tr>
-<th scope="row"><?php _e('Admin Color Scheme')?></th>
-<td><fieldset><legend class="hidden"><?php _e('Admin Color Scheme')?></legend>
-<?php
-$current_color = get_user_option('admin_color', $user_id);
-if ( empty($current_color) )
-	$current_color = 'fresh';
-foreach ( $_wp_admin_css_colors as $color => $color_info ): ?>
-<div class="color-option"><input name="admin_color" id="admin_color_<?php echo $color; ?>" type="radio" value="<?php echo $color ?>" class="tog" <?php checked($color, $current_color); ?> />
-	<table class="color-palette">
-	<tr>
-	<?php foreach ( $color_info->colors as $html_color ): ?>
-	<td style="background-color: <?php echo $html_color ?>" title="<?php echo $color ?>">&nbsp;</td>
-	<?php endforeach; ?>
-	</tr>
-	</table>
-
-	<label for="admin_color_<?php echo $color; ?>"><?php echo $color_info->name ?></label>
-</div>
-	<?php endforeach; ?>
-</fieldset></td>
-</tr>
-<tr>
-<th scope="row"><?php _e( 'Keyboard Shortcuts' ); ?></th>
-<td><label for="comment_shortcuts"><input type="checkbox" name="comment_shortcuts" id="comment_shortcuts" value="true" <?php if ( !empty($profileuser->comment_shortcuts) ) checked('true', $profileuser->comment_shortcuts); ?> /> <?php _e('Enable keyboard shortcuts for comment moderation. '); ?></label><?php _e('<a href="http://codex.wordpress.org/Keyboard_Shortcuts">More information</a>'); ?></td>
-</tr>
-<?php
-endif;
-do_action('personal_options', $profileuser);
-?>
-</table>
-<?php
-	if ( $is_profile_page )
-		do_action('profile_personal_options', $profileuser);
-?>
-
-<h3><?php _e('Name') ?></h3>
-
-<table class="form-table">
-	<tr>
-		<th><label for="user_login"><?php _e('Username'); ?></label></th>
-		<td><input type="text" name="user_login" id="user_login" value="<?php echo $profileuser->user_login; ?>" disabled="disabled" class="regular-text" /> <?php _e('Your username cannot be changed.'); ?></td>
-	</tr>
-
-<?php if ( !$is_profile_page ): ?>
-<tr><th><label for="role"><?php _e('Role:') ?></label></th>
-<td><select name="role" id="role">
-<?php
-// Get the highest/primary role for this user
-// TODO: create a function that does this: wp_get_user_role()
-$user_roles = $profileuser->roles;
-$user_role = array_shift($user_roles);
-
-// print the full list of roles with the primary one selected.
-wp_dropdown_roles($user_role);
-
-// print the 'no role' option. Make it selected if the user has no role yet.
-if ( $user_role )
-	echo '<option value="">' . __('&mdash; No role for this blog &mdash;') . '</option>';
-else
-	echo '<option value="" selected="selected">' . __('&mdash; No role for this blog &mdash;') . '</option>';
-?>
-</select></td></tr>
-<?php endif; //!$is_profile_page ?>
-
-<tr>
-	<th><label for="first_name"><?php _e('First name') ?></label></th>
-	<td><input type="text" name="first_name" id="first_name" value="<?php echo $profileuser->first_name ?>" class="regular-text" /></td>
-</tr>
-
-<tr>
-	<th><label for="last_name"><?php _e('Last name') ?></label></th>
-	<td><input type="text" name="last_name" id="last_name" value="<?php echo $profileuser->last_name ?>" class="regular-text" /></td>
-</tr>
-
-<tr>
-	<th><label for="nickname"><?php _e('Nickname') ?></label></th>
-	<td><input type="text" name="nickname" id="nickname" value="<?php echo $profileuser->nickname ?>" class="regular-text" /></td>
-</tr>
-
-<tr>
-	<th><label for="display_name"><?php _e('Display name publicly&nbsp;as') ?></label></th>
-	<td>
-		<select name="display_name" id="display_name">
-		<?php
-			$public_display = array();
-			$public_display['display_displayname'] = $profileuser->display_name;
-			$public_display['display_nickname'] = $profileuser->nickname;
-			$public_display['display_username'] = $profileuser->user_login;
-			$public_display['display_firstname'] = $profileuser->first_name;
-			$public_display['display_firstlast'] = $profileuser->first_name.' '.$profileuser->last_name;
-			$public_display['display_lastfirst'] = $profileuser->last_name.' '.$profileuser->first_name;
-			$public_display = array_unique(array_filter(array_map('trim', $public_display)));
-			foreach($public_display as $id => $item) {
-		?>
-			<option id="<?php echo $id; ?>" value="<?php echo $item; ?>"><?php echo $item; ?></option>
-		<?php
-			}
-		?>
-		</select>
-	</td>
-</tr>
-</table>
-
-<h3><?php _e('Contact Info') ?></h3>
-
-<table class="form-table">
-<tr>
-	<th><label for="email"><?php _e('E-mail') ?></label></th>
-	<td><input type="text" name="email" id="email" value="<?php echo $profileuser->user_email ?>" class="regular-text" /> <?php _e('Required.');?></td>
-</tr>
-
-<tr>
-	<th><label for="url"><?php _e('Website') ?></label></th>
-	<td><input type="text" name="url" id="url" value="<?php echo $profileuser->user_url ?>" class="regular-text code" /></td>
-</tr>
-
-<tr>
-	<th><label for="aim"><?php echo apply_filters('user_aim_label', __('AIM')); ?></label></th>
-	<td><input type="text" name="aim" id="aim" value="<?php echo $profileuser->aim ?>" class="regular-text" /></td>
-</tr>
-
-<tr>
-	<th><label for="yim"><?php echo apply_filters('user_yim_label', __('Yahoo IM')); ?></label></th>
-	<td><input type="text" name="yim" id="yim" value="<?php echo $profileuser->yim ?>" class="regular-text" /></td>
-</tr>
-
-<tr>
-	<th><label for="jabber"><?php echo apply_filters('user_jabber_label', __('Jabber / Google Talk')); ?></label></th>
-	<td><input type="text" name="jabber" id="jabber" value="<?php echo $profileuser->jabber ?>" class="regular-text" /></td>
-</tr>
-</table>
-
-<h3><?php $is_profile_page? _e('About Yourself') : _e('About the user'); ?></h3>
-
-<table class="form-table">
-<tr>
-	<th><label for="description"><?php _e('Biographical Info'); ?></label></th>
-	<td><textarea name="description" id="description" rows="5" cols="30"><?php echo $profileuser->description ?></textarea><br /><?php _e('Share a little biographical information to fill out your profile. This may be shown publicly.'); ?></td>
-</tr>
-
-<?php
-$show_password_fields = apply_filters('show_password_fields', true);
-if ( $show_password_fields ) :
-?>
-<tr>
-	<th><label for="pass1"><?php _e('New Password'); ?></label></th>
-	<td><input type="password" name="pass1" id="pass1" size="16" value="" autocomplete="off" /> <?php _e("If you would like to change the password type a new one. Otherwise leave this blank."); ?><br />
-		<input type="password" name="pass2" id="pass2" size="16" value="" autocomplete="off" /> <?php _e("Type your new password again."); ?><br />
-	<?php if ( $is_profile_page ): ?>
-		<div id="pass-strength-result"><?php _e('Strength indicator'); ?></div>
-		<p><?php _e('Hint: Your password should be at least seven characters long. To make it stronger, use upper and lower case letters, numbers and symbols like ! " ? $ % ^ &amp; ).'); ?></p>
-	<?php endif; ?>
-	</td>
-</tr>
-<?php endif; ?>
-</table>
-
-<?php
-	if ( $is_profile_page ) {
-		do_action('show_user_profile');
-	} else {
-		do_action('edit_user_profile');
-	}
-?>
-
-<?php if (count($profileuser->caps) > count($profileuser->roles) && apply_filters('additional_capabilities_display', true)): ?>
-<br class="clear" />
-	<table width="99%" style="border: none;" cellspacing="2" cellpadding="3" class="editform">
-		<tr>
-			<th scope="row"><?php _e('Additional Capabilities') ?></th>
-			<td><?php
-			$output = '';
-			foreach($profileuser->caps as $cap => $value) {
-				if(!$wp_roles->is_role($cap)) {
-					if($output != '') $output .= ', ';
-					$output .= $value ? $cap : "Denied: {$cap}";
-				}
-			}
-			echo $output;
-			?></td>
-		</tr>
-	</table>
-<?php endif; ?>
-
-<p class="submit">
-	<input type="hidden" name="action" value="update" />
-	<input type="hidden" name="user_id" id="user_id" value="<?php echo $user_id; ?>" />
-	<input type="submit" class="button-primary" value="<?php $is_profile_page? _e('Update Profile') : _e('Update User') ?>" name="submit" />
-</p>
-</form>
-</div>
-<?php
+	$profileuser = get_user_to_edit($user_id);
+	wp_enqueue_script('user');
+	$screen = $is_profile_page ? 'profile' : 'user-edit';
+	include('edit-form-user.php');
 break;
 }
 
Index: wp-admin/wp-admin.css
===================================================================
--- wp-admin/wp-admin.css	(revision 11028)
+++ wp-admin/wp-admin.css	(working copy)
@@ -774,8 +774,15 @@
 	padding: 3px 5px;
 	text-align: center;
 	width: 200px;
+	line-height: 20px;
 }
 
+#side-info-column  #pass-strength-result {
+	width: 100px;
+	height:100px;
+	vertical-align:middle;
+}
+
 .row-actions {
 	visibility: hidden;
 	padding: 2px 0 0;
Index: wp-includes/script-loader.php
===================================================================
--- wp-includes/script-loader.php	(revision 11028)
+++ wp-includes/script-loader.php	(working copy)
@@ -373,6 +373,9 @@
 			'l10n_print_after' => 'try{convertEntities(plugininstallL10n);}catch(e){};'
 		) );
 
+		$scripts->add( 'user', "/wp-admin/js/user$suffix.js", array('postbox'), '20090421' );
+		$scripts->add_data( 'user', 'group', 1 );
+
 		$scripts->add( 'farbtastic', '/wp-admin/js/farbtastic.js', array('jquery'), '1.2' );
 
 		$scripts->add( 'dashboard', "/wp-admin/js/dashboard$suffix.js", array( 'jquery', 'admin-comments', 'postbox' ), '20090201' );
