Index: modules/system/system.css
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.css,v
retrieving revision 1.52
diff -u -r1.52 system.css
--- modules/system/system.css	19 Oct 2008 20:55:07 -0000	1.52
+++ modules/system/system.css	26 Nov 2008 11:22:26 -0000
@@ -516,15 +516,22 @@
 /*
 ** Password strength indicator
 */
+#password-strength {
+    width: 17em;
+    float: right;
+    margin-top: 1.4em;
+}
 .password-strength-title {
-  float: left; /* LTR */
+    display: inline;
+}
+#password-strength-text {
+    float: right;
+    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%;
@@ -535,6 +542,10 @@
   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;
@@ -546,8 +557,7 @@
 }
 .password-parent {
   margin: 0;
-  float: left; /* LTR */
-  width: 17.3em;
+  width: 34.3em;
 }
 
 /*
Index: modules/user/user.js
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.js,v
retrieving revision 1.9
diff -u -r1.9 user.js
--- modules/user/user.js	20 Nov 2008 06:56:17 -0000	1.9
+++ modules/user/user.js	26 Nov 2008 11:22:26 -0000
@@ -18,9 +18,9 @@
       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>';
+      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.
@@ -50,6 +50,11 @@
 
         // Adjust the length of the strength indicator.
         $("#indicator").css('width', result.strength + '%');
+        $("#indicator").css('background-color', result.indicatorColor);
+
+        // Update the strength indication text
+        $("#password-strength-text").html(result.indicatorText);
+        $("#password-strength-text").css('color', result.indicatorColor);
 
         passwordCheckMatch();
       };
@@ -154,9 +159,23 @@
     strength = 5;
   }
 
+  // Based on the strength, work out what text/color should be shown by the password strength meter
+  if (strength < 30) {
+    indicatorText = 'Weak';
+    indicatorColor = '#cc0000';
+  }
+  else if (strength < 75) {
+    indicatorText = 'Fair';
+    indicatorColor = '#cccc00';
+  }
+  else {
+    indicatorText = 'Strong';
+    indicatorColor = '#00cc00';
+  }
+
   // 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, indicatorColor: indicatorColor };
 };
 
 /**
