Bits of possibly less-than-obvious advice:

Avoid accessing other singleton classes from singleton destructors.  That
introduces dependencies on the order of destruction, and can cause problems
if one of the singletons throws an exception.

