Appears to be working now, but I have serious reservations
about the handling of !current-function. I'm not sure it will always be
reset after returning