With the auxiliary "avoir", the past participle agrees with the direct object (COD) only if that object comes before the verb. If the direct object comes after the verb or is absent, the participle stays unchanged.
Look for the direct object (COD). If it comes before the verb, make the participle agree. If it comes after or is absent, leave it alone.
Examples
Les fleurs que j'ai cueillies sont magnifiques.
Key word(s): cueillies
The direct object "fleurs" (feminine plural) comes before "ai cueillies", so the participle agrees.
J'ai mangé les pommes.
Key word(s): mangé
The direct object "pommes" comes after the verb, so there is no agreement.
La chanson que nous avons écoutée était belle.
Key word(s): écoutée
The direct object "chanson" (feminine singular) comes before the verb.
Ils ont fini leurs devoirs.
Key word(s): fini
The direct object "devoirs" comes after, so the participle stays unchanged.
Les erreurs qu'il a commises sont graves.
Key word(s): commises
The direct object "erreurs" (feminine plural) comes before the verb.
Common mistakes
Forgetting to make the participle agree when the direct object is the relative pronoun "que"
Making the participle agree with the subject instead of the direct object
Confusing the direct object (COD) with the indirect object (COI), since there is no agreement with a COI
Test yourself
Les lettres que nous avons ___.
The direct object "lettres" (feminine plural) comes before the verb.
Elle a ___ ses amis.
The direct object "ses amis" comes after the verb, so there is no agreement.
Les photos que tu as ___ sont floues.
The direct object "photos" (feminine plural) comes before the verb.
Tips to remember
Replace the direct object with "le/la/les" to check its position.
If you can ask "quoi ?" (what) or "qui ?" (whom) after the verb and the answer comes AFTER it, do not make the participle agree.
The relative pronouns "que" and "qu'" always place the direct object before the verb.
Practice this rule with audio dictation
Apostrophe· drills this rule with dictations matched to your level, corrected instantly by AI.