Listeners done right (fixes #25)