This is a direct copy of the current code in puppet. Any issues with spelling or otherwise should be corrected there. :)