diff --git a/ldap_user/ldap_user.module b/ldap_user/ldap_user.module
index 04c87df..2030a81 100644
--- a/ldap_user/ldap_user.module
+++ b/ldap_user/ldap_user.module
@@ -433,6 +433,30 @@ function ldap_user_help($path, $arg) {
 
 
 /**
+ * Implements hook_form_FORM_ID_alter(). for user_login_block
+ */
+function ldap_user_form_user_login_block_alter(&$form, &$form_state) {
+  array_unshift($form['#validate'], 'ldap_user_grab_password_validate');
+}
+
+/**
+ * Implements hook_form_FORM_ID_alter(). for user_login_form
+ */
+function ldap_user_form_user_login_alter(&$form, $form_state) {
+  array_unshift($form['#validate'], 'ldap_user_grab_password_validate');
+}
+
+/**
+ * store password from logon forms in ldap_user_ldap_provision_pwd static variable
+ * for use in provisioing to ldap
+ */
+function ldap_user_grab_password_validate($form, &$form_state) {
+  if (!empty($form_state['values']['pass'])) {
+    ldap_user_ldap_provision_pwd('set', $form_state['values']['pass']);
+  }
+}
+
+/**
  * Implements hook_form_FORM_ID_alter(). for user_register_form
  */
 function ldap_user_form_user_profile_form_alter(&$form, $form_state) {
@@ -697,8 +721,6 @@ function ldap_user_ldap_provision_semaphore($action, $op, $value = NULL, $reset
  */
 function ldap_user_user_login(&$edit, $account) {
 
-  //dpm('ldap_user_user_login'); dpm($edit); dpm($account);
-
   if ($account->uid == 1) {
     return; // do not provision or synch user 1
   }
