Index: modules/system/system.css
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.css,v
retrieving revision 1.62
diff -u -p -r1.62 system.css
--- modules/system/system.css	5 Sep 2009 06:07:58 -0000	1.62
+++ modules/system/system.css	17 Sep 2009 03:33:41 -0000
@@ -520,15 +520,22 @@ html.js .js-hide {
 /*
 ** Password strength indicator
 */
+#password-strength {
+  width: 17em;
+  float: right;  /* LTR */
+  margin-top: 1.4em;
+}
 .password-strength-title {
-  float: left; /* LTR */
+  display: inline;
+}
+#password-strength-text {
+  float: right; /* LTR */
+  font-weight: bold;
 }
 #password-indicator {
-  border: 1px solid #B4B4B4;
-  float: right;
-  height: 0.9em;
-  margin: 0.3em 0.80em 0 0.3em;
-  width: 5em;
+  background-color: #C4C4C4;
+  height: 0.3em;
+  width: 100%;
 }
 #password-indicator div {
   height: 100%;
@@ -539,6 +546,10 @@ input.password-confirm, input.password-f
   width: 16em;
   margin-bottom: 0.4em;
 }
+div.password-confirm {
+  display: inline;
+  padding-left: 1em;
+}
 div.password-suggestions {
   padding: 0.2em 0.5em;
   margin: 0.7em 0;
@@ -550,8 +561,7 @@ div.password-suggestions ul {
 }
 .password-parent {
   margin: 0;
-  float: left; /* LTR */
-  width: 17.3em;
+  width: 34.3em;
 }
 
 /*
Index: modules/user/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.1044
diff -u -p -r1.1044 user.module
--- modules/user/user.module	17 Sep 2009 03:16:16 -0000	1.1044
+++ modules/user/user.module	17 Sep 2009 03:33:41 -0000
@@ -2822,6 +2822,7 @@ function _user_password_dynamic_validati
         'strengthTitle' => t('Password strength:'),
         'hasWeaknesses' => t('To make your password stronger:'),
         'tooShort' => t('Make it at least 6 characters'),
+        'tooShort2' => t('Too short'),
         'addLowerCase' => t('Add lowercase letters'),
         'addUpperCase' => t('Add uppercase letters'),
         'addNumbers' => t('Add numbers'),
@@ -2829,6 +2830,10 @@ function _user_password_dynamic_validati
         'sameAsUsername' => t('Make it different from your username'),
         'confirmSuccess' => t('yes'),
         'confirmFailure' => t('no'),
+        'weak'           => t('Weak'),
+        'fair'           => t('Fair'),
+        'good'           => t('Good'),
+        'strong'         => t('Strong'),
         'confirmTitle' => t('Passwords match:'),
         'username' => (isset($user->name) ? $user->name : ''))),
       'setting');
Index: modules/user/user.js
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.js,v
retrieving revision 1.17
diff -u -p -r1.17 user.js
--- modules/user/user.js	31 Aug 2009 05:51:08 -0000	1.17
+++ modules/user/user.js	17 Sep 2009 03:33:41 -0000
@@ -18,10 +18,11 @@ Drupal.behaviors.password = {
       var passwordResult = $('span.password-result', passwordStrength);
       innerWrapper.addClass('password-parent');
 
-      // Add the description box at the end.
-      var passwordMeter = '<div id="password-strength"><div class="password-strength-title">' + translate.strengthTitle + '</div><div id="password-indicator"><div id="indicator"></div></div></div>';
+      // Add the description box.
+      var passwordMeter = '<div id="password-strength"><div id="password-strength-text"></div><div class="password-strength-title">' + translate.strengthTitle + '</div><div id="password-indicator"><div id="indicator"></div></div></div>';
+
       $('div.description', outerWrapper).prepend('<div class="password-suggestions"></div>');
-      $(innerWrapper).append(passwordMeter);
+      $(innerWrapper).prepend(passwordMeter);
       var passwordDescription = $('div.password-suggestions', outerWrapper).hide();
 
       // Add the password confirmation layer.
@@ -52,6 +53,9 @@ Drupal.behaviors.password = {
         // Adjust the length of the strength indicator.
         $('#indicator').css('width', result.strength + '%');
 
+        // Update the strength indication text
+        $("#password-strength-text").html(result.indicatorText);
+
         passwordCheckMatch();
       };
 
@@ -155,9 +159,22 @@ Drupal.evaluatePasswordStrength = functi
     strength = 5;
   }
 
+  // Based on the strength, work out what text/color should be shown by the password strength meter
+  // if (indicatorText == translate.sameAsUsername2 || indicatorText == translate.tooShort2) {
+   if (strength < 60) {
+    indicatorText = translate.weak;
+  } else if (strength < 70) {
+    indicatorText = translate.fair;
+  } else if (strength < 80) {
+    indicatorText = translate.good;
+  } else if (strength < 100) {
+    indicatorText = translate.strong;
+  }
+
   // Assemble the final message.
   msg = translate.hasWeaknesses + '<ul><li>' + msg.join('</li><li>') + '</li></ul>';
-  return { strength: strength, message: msg };
+  return { strength: strength, message: msg, indicatorText: indicatorText }
+
 };
 
 /**
