When the last thing a function (or procedure) does is to call itself. Such a function is called tail recursive. A function may make several recursive calls but a call is only tail-recursive if the caller returns immediately after it. Tail recursion is a useful property because it enables tail recursion optimisation. If you aren't sick of them already, see recursion and tail recursion.