diff --git a/ldap_servers/ldap_servers.tokens.inc b/ldap_servers/ldap_servers.tokens.inc
index 5986765..31a1220 100644
--- a/ldap_servers/ldap_servers.tokens.inc
+++ b/ldap_servers/ldap_servers.tokens.inc
@@ -387,21 +387,18 @@ function ldap_servers_token_tokenize_user_account($user_account, $token_keys = '
       break;
 
       case 'password':
-
-        if ($user_entered_password_available && $attr_name == 'user-random') {
-          $value = ldap_user_ldap_provision_pwd('get');
-        }
-        if (empty($value)) {
-          $skip = TRUE;
+        if ($attr_name == 'user-random') {
+          $pwd = ldap_user_ldap_provision_pwd('get');
+          $value = ($pwd) ? $pwd : user_password();
         }
         elseif ($attr_name == 'random') {
           $value = user_password();
         }
-        else {
-          $skip = TRUE; // don't set token value because token is invalid
+        if (empty($value)) {
+          $skip = TRUE;
         }
-
       break;
+
     }
     if (!$skip) {
       $tokens[$pre . $token_key . $post] = check_plain($value);
diff --git a/ldap_user/ldap_user.module b/ldap_user/ldap_user.module
index f75fdd9..95bd38a 100644
--- a/ldap_user/ldap_user.module
+++ b/ldap_user/ldap_user.module
@@ -894,13 +894,6 @@ function ldap_user_user_update(&$user_edit, $account, $category) {
     return; // do not provision or synch user 1
   }
 
-  // Remove password so it doesn't get double hashed
-  if (isset($user_edit['pass'])) {
-    if ($user_edit['pass'] == $account->pass) {
-      unset($user_edit['pass']);
-    }
-  }
-
   $ldap_user_conf = ldap_user_conf();
   // check for provisioning to LDAP; this will normally occur on hook_user_insert or other event when drupal user is created.
   if ($ldap_user_conf->provisionsLdapEntriesFromDrupalUsers &&
@@ -1166,4 +1159,3 @@ function ldap_user_token_tokenize_entry($account, $token_keys, $pre = LDAP_SERVE
     return array($account, $user_entity);
 
   }
-  
\ No newline at end of file
