If I build boost 1.28 regex with _UNICODE defined and then attempt to link the static mssd.lib version with a _UNICODE application using the library, I get: boost_regex_vc6_mssd.lib(w32_regex_traits.obj) : error LNK2005: _iswspace already defined in libcmtd.lib(_wctype.obj) boost_regex_vc6_mssd.lib(c_regex_traits.obj) : error LNK2005: _iswalpha already defined in libcmtd.lib(_wctype.obj) boost_regex_vc6_mssd.lib(c_regex_traits.obj) : error LNK2005: _iswupper already defined in libcmtd.lib(_wctype.obj) boost_regex_vc6_mssd.lib(c_regex_traits.obj) : error LNK2005: _iswlower already defined in libcmtd.lib(_wctype.obj) boost_regex_vc6_mssd.lib(c_regex_traits.obj) : error LNK2005: _iswdigit already defined in libcmtd.lib(_wctype.obj) boost_regex_vc6_mssd.lib(c_regex_traits.obj) : error LNK2005: _iswxdigit already defined in libcmtd.lib(_wctype.obj) boost_regex_vc6_mssd.lib(c_regex_traits.obj) : error LNK2005: _iswspace already defined in libcmtd.lib(_wctype.obj) boost_regex_vc6_mssd.lib(c_regex_traits.obj) : error LNK2005: _iswpunct already defined in libcmtd.lib(_wctype.obj) boost_regex_vc6_mssd.lib(c_regex_traits.obj) : error LNK2005: _iswcntrl already defined in libcmtd.lib(_wctype.obj) Debug/TestRegularExpressionGUIStatic.exe : fatal error LNK1169: one or more multiply defined symbols found Error executing link.exe. This only occurs in the debug multi-threaded static library version. Has anyone else seen this or know why it might occur ? If I change the build options for this library from /Od /Gz to /O2, everything works fine and no linker errors occur.