The Perfect of Modals and Multi-Verb Clusters

You already know how to build a plain perfect: hebben/zijn plus a past participleIk heb gewerkt, Ze is gegaan. This page covers the case that breaks that formula: what happens when the verb you want to put in the perfect is a modal (kunnen, moeten, willen, mogen, hoeven), the causative laten, or a perception verb (zien, horen, voelen) — any verb that governs a bare infinitive. The participle you'd reach for (gekund, gemoeten, gelaten, gezien) does not appear. It is replaced by the plain infinitive, producing a cluster of stacked infinitives at the end of the clause. This is the Infinitivus pro Participio (IPP), and this page folds it into your perfect-building workflow. The mechanism itself is covered in depth on the double infinitive; here the focus is the recipe — how to assemble the perfect, and where the pieces go.

The one-step rule: swap the participle for an infinitive

Build the perfect exactly as you always do — conjugate the auxiliary (almost always hebben for these verbs) — but when you reach the modal, do not turn it into a participle. Leave it as an infinitive, and let the verb it governs follow as an infinitive too.

PresentNaive perfect (wrong)Actual perfect (IPP)
Ik moet werkenIk heb gemoeten werkenIk heb moeten werken
Ik kan het vindenIk heb het gekund vindenIk heb het kunnen vinden
Ze laat me wachtenZe heeft me gelaten wachtenZe heeft me laten wachten

Ik heb moeten werken.

I had to work. — 'moeten', the infinitive, never 'gemoeten'.

Ik heb het niet kunnen vinden.

I couldn't find it. — double infinitive 'kunnen vinden'; the auxiliary 'heb' is the only conjugated piece.

Ze heeft me een uur laten wachten.

She made me wait for an hour. — causative 'laten' stays an infinitive; 'wachten' follows as an infinitive.

So the practical instruction is one line: when a modal (or laten/perception verb) is in the perfect, write the infinitive where you would have written the participle. Everything else about the perfect — choosing the auxiliary, conjugating it, placing it — is unchanged.

💡
The trigger is a second verb following. If the modal has a verb after it, it goes IPP (infinitive): Ik heb moeten werken. If the modal stands alone — no following verb — it keeps its real participle: Ik heb het gemoeten ("I had to / it was required"), Ik heb het gekund ("I managed it"). So the participle isn't extinct; it's blocked only when another infinitive is present.

Which auxiliary: hebben, almost always

Modals in the perfect take hebben, full stop — even a modal governing a zijn-verb. The choice of auxiliary is dictated by the modal, not by the verb buried at the bottom of the cluster.

Ik heb gisteren niet kunnen komen.

I couldn't come yesterday. — even though 'komen' alone would take 'zijn' (ik ben gekomen), the modal forces 'hebben': 'heb ... kunnen komen'.

We hebben eerder moeten vertrekken dan gepland.

We had to leave earlier than planned. — 'vertrekken' is a zijn-verb, but the modal 'moeten' takes 'hebben'.

This is a small but reliable rule that saves you from agonising over the embedded verb: the modal sits at the top of the cluster, and the modal wants hebben. Laten and the perception verbs likewise take hebben.

Three or more verbs: stacking the cluster

Because each IPP verb can itself govern an infinitive, the perfect can stack a modal over a causative or perception verb, producing three or more infinitives in a row. The recipe doesn't change: every governing verb stays an infinitive, and only the auxiliary is conjugated.

Ik heb hem niet kunnen laten weten dat ik later kwam.

I couldn't let him know I'd be late. — three infinitives: 'kunnen laten weten'.

Je had het me wel even kunnen laten zien.

You could have just shown it to me. — modal over causative: 'kunnen laten zien'.

Read the stack left to right and it tracks the meaning: heb kunnen laten weten = "have [been able [to let [know]]]." The verbs line up in the order governor-before-governed, which is the natural Dutch cluster order — see verb-cluster order for the full account of how clusters sequence.

Word order: main clause vs subordinate clause

This is where the perfect of a cluster diverges sharply from a plain perfect, and it is the second-most-common error after using the participle.

Main clause — auxiliary second, infinitives last

In a main clause, nothing surprising happens. The V2 rule puts the finite auxiliary in second position, and the infinitives simply pile up at the end in governor-then-governed order.

Ik heb het je nog willen zeggen, maar ik vergat het.

I meant to tell you, but I forgot. — main clause: 'heb' second, 'willen zeggen' closing the bracket.

Hij heeft de hele dag moeten wachten op de monteur.

He had to wait for the mechanic all day. — 'heeft' second, 'moeten wachten' at the end.

Subordinate clause — auxiliary jumps to the FRONT of the cluster

Here is the twist. In an ordinary subordinate perfect, the participle and auxiliary go to the very end, auxiliary last: ...dat hij het gedaan heeft. But in an IPP cluster, the finite auxiliary leaps to the front of the verb group, before both infinitives.

Clause typeVerb-group order
ordinary perfect (subordinate)...dat hij het gedaan heeft  (participle + aux; aux last)
IPP cluster (subordinate)...dat hij het heeft willen doen  (aux FIRST, then infinitives)

So you do not say ...dat hij het willen doen heeft — the order the normal rule would predict. The auxiliary heads the cluster: ...dat hij het *heeft willen doen*.

Het spijt me dat ik niet eerder heb kunnen reageren.

I'm sorry I couldn't reply sooner. — subordinate: 'heb' before 'kunnen reageren', not after.

Iedereen weet dat hij heeft moeten vertrekken.

Everyone knows that he had to leave. — subordinate: 'heeft moeten vertrekken', auxiliary first.

Ze gaf toe dat ze ons niet had willen laten wachten.

She admitted she hadn't meant to make us wait. — pluperfect, three-verb cluster: 'had willen laten wachten', auxiliary leading.

The same front-placement holds in the pluperfect (with had/hadden): ...dat hij het *had kunnen voorkomen. Whether the auxiliary is *heb, heeft, had, or hadden, it goes to the head of the cluster in a subordinate clause.

💡
Two checks before you write a cluster perfect: (1) Did I use the infinitive, not the participle, for the modal? (2) In a subordinate clause, is the finite auxiliary first in the verb group? Get those two right and the rest of the perfect builds itself.

A subtle point: hoeven and zullen

Hoeven ("to need to," always with negation) behaves like a full modal here: Ik heb het niet *hoeven doen ("I didn't have to do it") — infinitive, not *gehoeven. Zullen is barely used in the perfect for independent reasons (it expresses future/conditional meaning that the perfect rarely needs), but when it does appear it patterns the same way. You'll meet hoeven's perfect far more often, especially in spoken Dutch where "I didn't have to" is a common thing to say.

Je had niet hoeven komen, ik had het al gedaan.

You didn't have to come, I'd already done it. — pluperfect of 'hoeven': 'had ... hoeven komen', infinitive.

Common Mistakes

❌ Ik heb gemoeten werken.

Incorrect — a modal over an infinitive stays an infinitive in the perfect: use 'moeten', not 'gemoeten'.

✅ Ik heb moeten werken.

I had to work.

❌ Ik heb het niet gekund vinden.

Incorrect — 'kunnen' goes IPP before a following infinitive, never 'gekund'.

✅ Ik heb het niet kunnen vinden.

I couldn't find it.

❌ Ik ben niet kunnen komen.

Incorrect auxiliary — modals take 'hebben' in the perfect, even over a zijn-verb like 'komen'.

✅ Ik heb niet kunnen komen.

I couldn't come.

❌ ...dat hij heeft moeten vertrekken... wait — ...dat hij moeten vertrekken heeft.

Wrong order — in an IPP subordinate clause the auxiliary leads the cluster; it does not go last.

✅ ...dat hij heeft moeten vertrekken.

...that he had to leave. — 'heeft' before both infinitives.

❌ Ze heeft me laten gewacht.

Incorrect — the complement of 'laten' stays a bare infinitive: 'laten wachten', not a participle.

✅ Ze heeft me laten wachten.

She made me wait.

Key Takeaways

  • To put a modal (or laten/perception verb) in the perfect, write the infinitive where the participle would go: heb moeten werken, not gemoeten.
  • The modal stays a participle only when no verb follows it: Ik heb het gemoeten, Ik heb het gekund.
  • Modals take hebben in the perfect — even over a zijn-verb (heb niet kunnen komen).
  • Clusters of three or more verbs stack the same way: every governing verb is an infinitive.
  • Main clause: auxiliary second, infinitives last. Subordinate clause: the finite auxiliary jumps to the front of the cluster — ...dat hij heeft moeten vertrekken, never ...moeten vertrekken heeft.

Now practice Dutch

Reading grammar gets you part of the way. The exercises are where it sticks — free, no signup needed.

Start learning Dutch

Related Topics

  • The Double Infinitive (Infinitivus pro Participio)B2Why modals and verbs like laten, zien, horen and helpen appear as a bare infinitive — not a participle — in the perfect, producing a double infinitive, and the unusual verb-cluster order it forces.
  • Ordering Verbs in the Final ClusterB2When two or more verbs pile up at the end of a subordinate clause, the order among them can vary — the famous 'red' and 'green' word orders — and with three verbs the infinitivus-pro-participio rule kicks in.
  • The Perfect Tense (Voltooid Tegenwoordige Tijd)A2The perfect — present of hebben/zijn plus a past participle sent to the end of the clause — is the everyday way Dutch talks about the past in speech, used far more freely than the English present perfect.
  • Causative Laten (and Doen)B2How laten + infinitive collapses English let, make, and have-something-done into a single verb, plus the literary doen-causative and the double-infinitive perfect.
  • Modal Verbs: OverviewA2A map of the six Dutch modals — kunnen, mogen, moeten, willen, zullen, hoeven — and the one pattern they share: modal + bare infinitive at the end of the clause.