Recommit previous cleanup with a fix for c++98 ambiguity.