I don't mind recursion, but when the stop condition depends on a system variable it gives me the chills