multiple returns in callf handled in wrong order
more writeup