substitute_for_join recurses properly