Hello I am developing a library which uses a variant like this one class my_class {}; typedef boost::make_recursive_variant< my_class, int , std::string, boost::posix_time::ptime, std::vector<boost::recursive_variant_>, std::map<std::string, boost::recursive_variant_> >::type param; Under a Debug build when the type my_class is not present everything compiles perfectly, however with my_class I get internal compiler errors such as the ones below; G:\Program Files (x86)\Microsoft Visual Studio .NET 2003\Vc7\include\xstring(827) : fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'msc1.cpp', line 2701) Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information c1xx : fatal error C1063: INTERNAL COMPILER ERROR Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information While playing around with the code and making adjustments (like reordering the types for the variant) I once got the compiler to display this error; fatal error C1067: compiler limit : debug information module size exceeded Searchs on the net pointed to using the #pragma component (mintypeinfo, on ) around the offending code, but even when I include this pragam enclosing the entire header containing my variant type I continue to get the Internal Compiler Error for some files, though it does go away for others. As hinted to by searches on the net this problem seems to be related to debug information and indeed everything does work fine under a release build. However as I am developing a library for use by others I cannot force them to avoid debug builds :^) . Everything works fine with the lastest MinGW debug or release. Any suggestions would be very much appreciated. Kind Regards, Eoin.