Why bother with this preliminary check rather than just doing it all in one pass?