diff --git a/password_policy.module b/password_policy.module
index 7ae3fac..16c4a71 100644
--- a/password_policy.module
+++ b/password_policy.module
@@ -422,10 +422,24 @@ function password_policy_user_delete($account) {
  * Implements hook_form_alter().
  */
 function password_policy_form_alter(&$form, $form_state, $form_id) {
+  global $user;
+
+  // Timing issues require reloading the user object
+  // to get the password_change property set.
+  $account = user_load($user->uid);
+
   switch ($form_id) {
     case 'user_profile_form':
     case 'user_register_form':
     case 'password_policy_password_tab':
+      // Hide current password field if a password change was forced by this 
+      // module.
+      if (isset($account->force_password_change) && $account->force_password_change) {
+        unset($form['account']['current_pass_required_values']);
+        unset($form['account']['current_pass']);
+        $form['#validate'] = array_diff($form['#validate'], array('user_validate_current_pass'));
+      }
+
       // Force password change on user account.
       if (user_access('force password change')) {
         if (isset($form['#user_category']) && $form['#user_category'] == 'account') {
