Not sure if it applies here, but sometimes I like to use macros that are defined to nothing when a feature isn't enabled. This keeps the mess more confined to headers. It can be confusing to others though. Nathan