Index: src/wp-includes/script-loader.php
===================================================================
--- src/wp-includes/script-loader.php	(revision 25857)
+++ src/wp-includes/script-loader.php	(working copy)
@@ -332,7 +332,7 @@
 
 	$scripts->add( 'user-suggest', "/wp-admin/js/user-suggest$suffix.js", array( 'jquery-ui-autocomplete' ), false, 1 );
 
-	$scripts->add( 'about', "/wp-admin/js/about$suffix.js", array( 'jquery', 'password-strength-meter' ), false, 1 );
+	$scripts->add( 'about', "/wp-admin/js/about$suffix.js", array( 'jquery', 'password-strength-meter', 'underscore' ), false, 1 );
 
 	$scripts->add( 'admin-bar', "/wp-includes/js/admin-bar$suffix.js", array(), false, 1 );
 
Index: src/wp-admin/js/about.js
===================================================================
--- src/wp-admin/js/about.js	(revision 25857)
+++ src/wp-admin/js/about.js	(working copy)
@@ -2,11 +2,20 @@
     var password = 'Gosh, WordPress is grand.',
         $input = $('#pass'),
         shouldAnimate = true,
+        timesForAnimation = [280, 300, 305, 310, 315, 325, 330, 345, 360, 370, 380, 400 , 450, 500, 600],
+        resultsCache = {},
         indicatorString = $('#pass-strength-result').text();
 
     function updateResult(){
-        var strength = wp.passwordStrength.meter($input.val(), [], $input.val());
+        var strength;
 
+        if ( typeof( resultsCache[ $input.val() ]) === 'undefined') {
+            strength = wp.passwordStrength.meter($input.val(), [], $input.val());
+            resultsCache[ $input.val() ] = strength
+        } else {
+            strength = resultsCache[ $input.val() ]
+        }
+
         $('#pass-strength-result').removeClass('short bad good strong');
         switch ( strength ) {
             case 2:
@@ -34,11 +43,16 @@
         if ($input.val().length < password.length){
             $input.val( password.substr(0, $input.val().length + 1) );
             updateResult();
+
+            // Look like real typing by changing the speed new letters are added each time
+            setTimeout(animate, _.shuffle(timesForAnimation )[0] );
         } else {
             resetMeter();
+
+            // When we reset, let's wait a bit longer than normal to start again
+            setTimeout(animate, 700);
         }
-        // Look like real typing by changing the speed new letters are added each time
-        setTimeout(animate, 220 + Math.floor(Math.random() * ( 800 - 220)) );
+
     }
     // 
     function begin(){
