diff -ruN samba-3.5.11.a/source3/passdb/pdb_get_set.c samba-3.5.11.b/source3/passdb/pdb_get_set.c --- samba-3.5.11.a/source3/passdb/pdb_get_set.c 2011-08-03 20:24:05.000000000 +0200 +++ samba-3.5.11.b/source3/passdb/pdb_get_set.c 2011-11-02 14:07:25.854171298 +0100 @@ -91,6 +91,11 @@ if (!pdb_get_account_policy(PDB_POLICY_MIN_PASSWORD_AGE, &allow)) allow = 0; + /* if the time is set for the user specifically, use it if it + is later than the policy */ + if (sampass->pass_can_change_time > sampass->pass_last_set_time + allow) + return sampass->pass_can_change_time; + /* in normal cases, just calculate it from policy */ return sampass->pass_last_set_time + allow; }