Hi there, I know the subject looks suspicious. Usually all compiler errors are weird when you do metaprogramming. Anyway, this example is a bit different. I'm just trying to compile a small example taking from the documentation. #include <boost/fusion/sequence.hpp> using namespace std; using namespace boost; using namespace fusion; int _tmain(int argc, _TCHAR* argv[]) { typedef map<pair<int, char>, pair<char, char>, pair<double, char> > mymap; BOOST_MPL_ASSERT((boost::is_same<result_of::at_key<mymap, int>::type, char&>)); return 0; } The error is: c:\cybermdx\Test Programs\Boost\MPL\tagged types\tagged types.cpp(15) : error C2143: syntax error : missing '}' before '(' c:\cybermdx\Test Programs\Boost\MPL\tagged types\tagged types.cpp(15) : fatal error C1903: unable to recover from previous error(s); stopping compilation I have no clue where the compiler is missing a closing bracket. I'm using MSVC 7.1 Christian