In my project I have two header files both introducing four BOOST_CONCEPT_ASSERT macros at namespace level. It happened that both those files used those macros at the same lines (same line numbers). The compilation of the one which is included as second fails (on MSVC 2008) with error: d:\studies\thesis\project\prover\formulas\terms\variable.h(83) : error C2365: 'boost_concept_check83' : redefinition; previous definition was 'enumerator' d:\studies\thesis\project\prover\formulas\terms\constant.h (83) : see declaration of 'boost_concept_check83' (repeated for each o those four uses with indexes 84, 85, 86 - clearly line numbers). It seems the line number is used to build some inner use name. Reasonable. But failable as well. Maybe file name macro could be used here however this could give string inappropriate for the identifier. I don't know how to solve this (a temporal workaround is obviously easy - just move the macros in on of files to a different place). I haven't found any info on that neither in the documentation nor in the groups. Adam Badura