Index: modules/system/system-rtl.css
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system-rtl.css,v
retrieving revision 1.14
diff -u -p -r1.14 system-rtl.css
--- modules/system/system-rtl.css	19 Oct 2008 20:55:07 -0000	1.14
+++ modules/system/system-rtl.css	18 Nov 2008 00:49:06 -0000
@@ -87,21 +87,17 @@ div.teaser-button-wrapper {
 .ahah-progress .throbber {
   float: right;
 }
-input.password-field {
-  margin-left: 10px;
-  margin-right: 0;
-}
-input.password-confirm {
-  margin-left: 10px;
-  margin-right: 0;
+#password-indicator {
+  float: left;
+  margin: 0.2em 0.3em 0 0.6em;
 }
 .password-strength-title {
   float: right;
 }
-.password-parent {
+.form-item .password-parent {
+  margin: 0 0 0 0.5em;
   float: right;
 }
-
 .draggable a.tabledrag-handle {
   float: right;
   margin: -0.4em -0.5em -0.4em 0;
Index: modules/system/system.css
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.css,v
retrieving revision 1.52
diff -u -p -r1.52 system.css
--- modules/system/system.css	19 Oct 2008 20:55:07 -0000	1.52
+++ modules/system/system.css	18 Nov 2008 00:49:06 -0000
@@ -516,6 +516,10 @@ html.js .js-hide {
 /*
 ** Password strength indicator
 */
+#password-strength {
+  height: 1.3em;
+  margin: 0.5em 0;
+}
 .password-strength-title {
   float: left; /* LTR */
 }
@@ -523,8 +527,8 @@ html.js .js-hide {
   border: 1px solid #B4B4B4;
   float: right;
   height: 0.9em;
-  margin: 0.3em 0.80em 0 0.3em;
-  width: 5em;
+  margin: 0.2em 0.8em 0 0.3em;
+  width: 3.1em;
 }
 #password-indicator div {
   height: 100%;
@@ -532,24 +536,29 @@ html.js .js-hide {
   background-color: #47C965;
 }
 input.password-confirm, input.password-field {
-  width: 16em;
-  margin-bottom: 0.4em;
+  width: 13.8em;
+  font-size: 1em;
 }
 div.password-suggestions {
   padding: 0.2em 0.5em;
   margin: 0.7em 0;
-  width: 38.5em;
+  width: 33.3em;
   border: 1px solid #B4B4B4;
 }
 div.password-suggestions ul {
   margin-bottom: 0;
 }
+#edit-pass-wrapper {
+  overflow: hidden;
+}
 .password-parent {
   margin: 0;
   float: left; /* LTR */
-  width: 17.3em;
+  width: 15em;
+}
+#edit-pass-wrapper .description {
+  clear: both;
 }
-
 /*
 ** Password confirmation checker
 */
@@ -557,5 +566,6 @@ div.password-suggestions ul {
   margin: 0;
 }
 div.password-confirm {
+  margin: 0.5em;
   visibility: hidden;
 }
Index: modules/user/user.js
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.js,v
retrieving revision 1.8
diff -u -p -r1.8 user.js
--- modules/user/user.js	29 Oct 2008 10:01:28 -0000	1.8
+++ modules/user/user.js	18 Nov 2008 00:49:06 -0000
@@ -17,18 +17,18 @@ 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>';
-      $("div.description", outerWrapper).prepend('<div class="password-suggestions"></div>');
-      $(innerWrapper).append(passwordMeter);
-      var passwordDescription = $("div.password-suggestions", outerWrapper).hide();
-
       // Add the password confirmation layer.
       $("input.password-confirm", outerWrapper).after('<div class="password-confirm">' + translate["confirmTitle"] + ' <span></span></div>').parent().addClass("confirm-parent");
       var confirmInput = $("input.password-confirm", outerWrapper);
       var confirmResult = $("div.password-confirm", outerWrapper);
       var confirmChild = $("span", confirmResult);
 
+      // 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>';
+      $(confirmInput).parent().after('<div class="password-suggestions description"></div>');
+      $(innerWrapper).append(passwordMeter);
+      var passwordDescription = $("div.password-suggestions", outerWrapper).hide();
+
       // Check the password strength.
       var passwordCheck = function () {
 
@@ -78,10 +78,21 @@ Drupal.behaviors.password = {
         }
       }
 
+      // Ensure the entire password checker is scrolled into view.
+      function scrollTo(selector) {
+        var viewportBottom = $(window).height() + $(window).scrollTop();
+        var checkerBottom = $(outerWrapper).height() + $(outerWrapper).offset().top;
+        if (viewportBottom < checkerBottom) {
+          $(window).scrollTop(checkerBottom - $(window).height() + 5);
+        }  
+      }
+
       // Monitor keyup and blur events.
       // Blur must be used because a mouse paste does not trigger keyup.
       passwordInput.keyup(passwordCheck).focus(passwordCheck).blur(passwordCheck);
       confirmInput.keyup(passwordCheckMatch).blur(passwordCheckMatch);
+
+      passwordInput.focus(function () { scrollTo(outerWrapper) } );
     });
   }
 };
