diff --git a/user_registrationpassword.module b/user_registrationpassword.module
index d27aaed..066b18a 100644
--- a/user_registrationpassword.module
+++ b/user_registrationpassword.module
@@ -496,16 +496,22 @@ function user_registrationpassword_set_message($type = 'welcome', $redirect = ''
 }
 
 /**
-* Implements hook_form_FORM_ID_alter().
-*/
+ * Implements hook_form_FORM_ID_alter().
+ */
 function user_registrationpassword_form_user_pass_alter(&$form, &$form_state, $form_id) {
-  $form['#validate'][0] = '_user_registrationpassword_user_pass_validate';
-  $form['#submit'][0] = '_user_registrationpassword_user_pass_submit';
+  $key_validate = array_search('user_pass_validate', $form['#validate']);
+  if (FALSE !== $key_validate) {
+    $form['#validate'][$key_validate] = '_user_registrationpassword_user_pass_validate';
+  }
+  $key_submit = array_search('user_pass_submit', $form['#submit']);
+  if (FALSE !== $key_submit) {
+    $form['#submit'][$key_submit] = '_user_registrationpassword_user_pass_submit';
+  }
 }
 
 /**
-* Form validation function.
-*/
+ * Form validation function.
+ */
 function _user_registrationpassword_user_pass_validate(&$form, &$form_state) {
   // We try and load a blocked user that never ever logged in.
   // This should only return 'brand new' user accounts.
@@ -545,8 +551,8 @@ function _user_registrationpassword_user_pass_validate(&$form, &$form_state) {
 }
 
 /**
-* Implements submit function.
-*/
+ * Implements submit function.
+ */
 function _user_registrationpassword_user_pass_submit(&$form, &$form_state) {
   $account = $form_state['values']['account'];
 
