new attempt at working around the gcc 3 visibility bug