Index: login_destination.module
===================================================================
--- login_destination.module	(revision 87)
+++ login_destination.module	(working copy)
@@ -168,7 +168,7 @@
     // if condition is ok and this is not the user_login form - redirect. (on the user_login form we set $form['#redirect'] which
     // takes care of the redirection there.)
     //if (login_destination_apply_redirect() && $edit['form_id'] != "user_login") {      
-    if (login_destination_apply_redirect()) {
+    if (login_destination_apply_redirect($account)) {
       login_destination_redirect_to_path_and_query($path, $query);
     }
   }
@@ -263,12 +260,15 @@
  *
  * @return bool TRUE - apply redirect, FALSE - not to apply redirect.
  */
-function login_destination_apply_redirect() {
-  
+function login_destination_apply_redirect($account) {
+  global $user;  
   // don't redirect on registration's password reset
   // not clear if this affects anything. Can't hurt. At least the wrong redirection does not happen currently. Phew!
-  if (arg(0) == 'user' && arg(1) == 'reset') { return FALSE; }
-
+  // Also check for force_password_change
+  if ((arg(0) == 'user' && arg(1) == 'reset')
+    || ($account->force_password_change && $account->uid == $user->uid)) {
+    return FALSE;
+  }
   $mode = variable_get('ld_condition_type', LOGIN_COND_ALWAYS);
   if ($mode == LOGIN_COND_ALWAYS ) {
     return TRUE;
