recursion ftw (fixes #209)