---
title: "Verb clusters: heb kunnen komen"
level: B2
chapter: "Verbs in time"
canonical: https://www.dutchfluency.com/grammar/verb-clusters
updated: 2026-10-09
author: Dutch Fluency
license: CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0/)
---

# Verb clusters: heb kunnen komen

When a verb like _kunnen_, _moeten_, _laten_ or _blijven_ has another infinitive (the dictionary form, like _komen_) working with it, the perfect (the past with _hebben_ or _zijn_) does not use its past participle (the _ge-_ form). It uses the infinitive instead: _Ik heb niet kunnen komen_, not _gekund_. In a subordinate clause (a clause with _omdat_, _dat_, _of_ and similar words), _heb_ or _ben_ comes first in the group of verbs at the end: _omdat ik niet heb kunnen komen_.

## The pattern

> In the perfect, a modal verb or a verb like _laten_, _zien_, _horen_, _blijven_ or _gaan_ becomes an infinitive when another infinitive depends on it. In a subordinate clause, the finite verb (the one that matches the subject, like _heb_ or _is_) comes first in the final group.

- Verbs that do this: the [modal verbs](https://www.dutchfluency.com/grammar/modal-verbs) _kunnen_, _moeten_, _willen_ and _mogen_, plus _laten_, _zien_, _horen_, _blijven_, _gaan_ and _komen_.
- _zitten_, _staan_, _liggen_ and _lopen_ do it too, and lose their _te_: _Ik sta te wachten_ becomes _Ik heb staan wachten_.
- _hebben_ or _zijn_? Normally the one the first infinitive takes on its own. _kunnen_ takes _hebben_, so _ik heb kunnen komen_; _blijven_ takes _zijn_, so _ik ben blijven wachten_. That is why you say _Ik heb vroeg naar huis moeten gaan_, with _heb_.
- No second infinitive, no swap: _Ik heb het niet gekund._
- Many verbs with _te_, such as _besluiten_, keep their participle: _Ik heb besloten te bellen._ A few, like _proberen_, allow both: _Ik heb geprobeerd te bellen_ and _Ik heb proberen te bellen_ are both standard.

## Examples

| Sorry, ik heb gisteren niet **kunnen komen**. | Sorry, I couldn't make it yesterday. |
| Fatima heeft de hele zaterdag **moeten werken**. | Fatima had to work all day Saturday. |
| Daan heeft zijn fiets bij de fietsenmaker **laten repareren**. | Daan had his bike repaired at the bike shop. |
| We zijn na de vergadering nog even **blijven praten**. | We stayed for a chat after the meeting. |
| Toen het droog werd, zijn we **gaan fietsen**. | When it stopped raining, we went for a bike ride. |
| Ik heb Sanne nog nooit zo hard **horen lachen**. | I've never heard Sanne laugh so hard. |
| Joris zegt dat hij een uur op de bus **heeft staan wachten**. | Joris says he stood waiting for the bus for an hour. |
| Ik weet niet of Ahmed de laatste trein nog **heeft kunnen halen**. | I don't know if Ahmed managed to catch the last train. |
| Een eigen zaak? Dat heeft Carlos altijd al **gewild**. | His own business? That's what Carlos has always wanted. |

## Why it works this way

Read the verb group as a chain of command from left to right. In _heb kunnen komen_, _heb_ steers _kunnen_, and _kunnen_ steers _komen_. Only the first verb changes with the subject. Normally _hebben_ wants a participle next to it, as in _heb gewerkt_, but a verb that is busy steering another infinitive keeps its plain infinitive shape. The result is two infinitives side by side, often called the double infinitive.

The same picture helps with word order: in a subordinate clause, the boss stands at the head of the chain, as in _omdat ik mijn fiets heb laten repareren_. With an ordinary participle Dutch allows both _omdat ik het heb gedaan_ and _omdat ik het gedaan heb_, but with a double infinitive the finite verb goes first. More on this in the order of verbs at the end.

If you speak German, you know this trick from "Ich habe nicht kommen können", but Dutch puts the last two verbs the other way round: _kunnen komen_. English has nothing quite like it. Relax: the simple past _Ik kon gisteren niet komen_ is just as correct. You only need the cluster when you choose the perfect, which Dutch speakers do constantly in conversation. The next lesson looks closer at zien, horen and voelen.

Remember: when one of these verbs has another infinitive on its right, it drops its _ge-_ and turns into an infinitive too. Take that infinitive away, and _gekund_, _gewild_ and _gelaten_ come straight back.

## Watch out

- Not: _Ik heb niet gekund komen_ Say: _Ik heb niet kunnen komen_ (_kunnen_ has an infinitive after it, so no _ge-_)
- Not: _Ik heb mijn haar laten geknipt_ Say: _Ik heb mijn haar laten knippen_ (English says "had my hair cut", but after _laten_ Dutch uses an infinitive)
- Not: _We zijn gisteren gegaan zwemmen_ Say: _We zijn gisteren gaan zwemmen_ (_gaan_ with an infinitive stays _gaan_)
- Not: _omdat ze niet kunnen komen heeft_ Say: _omdat ze niet heeft kunnen komen_ (with a double infinitive the finite verb goes first)

## Quick check

1. Choose _kunnen_ or _gekund_: _Ik heb vannacht niet ... slapen door het onweer._
2. Choose _gaan_ or _gegaan_: _Na het werk zijn Bas en Lotte nog ... zwemmen._
3. Put _heeft_, _verkopen_ and _moeten_ in the right order: _Priya zegt dat ze haar auto ..._
4. Choose _willen_ or _gewild_: _Een hond? Die heeft Yara nooit ..._

## Answers

1. _kunnen_: _slapen_ depends on it, so the modal stays an infinitive.
2. _gaan_: with another infinitive, _gaan_ keeps its infinitive form.
3. _heeft moeten verkopen_: finite verb first, then each verb before the one it steers.
4. _gewild_: there is no second infinitive, so the normal participle returns.

## Use it today

Send a friend or colleague a short message about your week with three clusters: something you had to do (_Ik heb ... moeten ..._), something you had done for you (_Ik heb ... laten ..._), and something you went or stayed to do (_Ik ben ... gaan ..._ or _Ik ben ... blijven ..._). For example: _Ik heb eindelijk mijn band laten plakken._

## Questions learners ask

**Why do you say "ik heb niet kunnen komen" and not "ik heb niet gekund komen"?**

When a modal verb like kunnen has another infinitive with it, Dutch uses the infinitive instead of the participle in the perfect. Gekund only appears when there is no second infinitive, as in "Ik heb het niet gekund."

**Is it "ik ben gaan zwemmen" or "ik heb gaan zwemmen"?**

It is "ik ben gaan zwemmen". In these clusters the auxiliary is normally the one the first infinitive takes on its own, and gaan takes zijn, just as in "ik ben gegaan".

**What is the word order of three verbs at the end of a Dutch subordinate clause?**

With a double infinitive, the finite verb comes first, then the verb that steers the last one, and the main verb comes last: "omdat ik mijn fiets heb laten repareren". Putting "heb" at the end of this cluster is not standard Dutch.

From the Dutch Fluency Grammar: https://www.dutchfluency.com/grammar. Shared under CC BY-SA 4.0.
