Somewhere between FreeBSD 6.2 and 7.0 getenv has been changed to return a null if an environment variable is set but has no value. I don't find anything anywhere in the documentation/man pages on this. As a result, you cannot distinguish between a variable that is not set and one that is set to a value of "". Is this a bug or a feature change?