It should be given a maximum depth, right?  So that it doesn't loop forever when first run on a large user?