I just noticed that JDK 6 has a different approach to setting a default TimeZone than JDK5.
Previously the new default would be stored in a thread-local variable. W
This was probably done to fix a bug. I'd search bugs.sun.com to find the rationale for it. (Clues might also be found in the release notes.)