How to properly integrate Zombie 2.0.4 and Mocha

For testing a node.js project, I'm using mocha and zombie. After a recent zombie upgrade (from 2.0.0-alphaXX to 2.0.4), the following code snippet now gives me an error.

CODE:

...
browser.visit('/index.html', function(){
    assert.equal(browser.html('#mop h2'), '');
    browser
        .fill('.quicksearch.controls .query', pose.name)
        .fire('.quicksearch.controls .query', 'keyup')
        .then(function(){
            assert.equal(browser.queryAll('.quicksearch.results .pose').length, 1);
            browser
                .fire('.quicksearch.results .pose', 'click')
                .then(function(){
                    assert.notEqual(browser.html('#mop h2'), '');
                    assert.ok(browser.query('#mop .editStart'));
                    assert.ok(!browser.query('#mop .editEnd'));
                    browser
                        .clickLink('#mop .editStart', function(){
                            assert.ok(!browser.query('#mop .editStart'));
                            assert.ok(browser.query('#mop .editEnd'));
                        })
                        .then(done, done); /* CAUSE OF THE ERROR */
                })
        })
})  
...

ERROR:

Possibly unhandled TypeError: Cannot call method 'then' of undefined

It turns out that clickLink used to return a promise, whether or not you gave it a function as a parameter (.then can be called in this case). Now, clickLink returns null, if you give it a function as a parameter, hence the above error.

I could add a done() call inside the function passed to clickLink, but if an assertion fails, then I simply get a timeout error reported (because done is never reached) instead of an informative message. Additionally, assertion errors that are not in the scope of the clickLink callback are not caught (even in the older version of zombie).

How can I have such a multiple callback scenario which reports errors wherever they occur when I run mocha tests?