All, I've been working to get boost-serialization running on a Windows CE (actually Pocket PC 2003) device these last few days, and have hit a snag. Could anyone help me with what might be causing the following errors in the operators.hpp file? c:\Documents and Settings\388572\Desktop\sandbox\Boost_1_34_1\boost\libs\serialization\vc 7ide\..\..\..\boost/operators.hpp(699) : error C3083: 'detail': the symbol to the left of a '::' must be a type It happens at this section of code: namespace boost { // A type parameter is used instead of a plain bool because Borland's compiler // didn't cope well with the more obvious non-type template parameter. namespace detail { struct true_t {}; struct false_t {}; } // namespace detail // Unspecialized version assumes that most types are not being used for base // class chaining. We specialize for the operator templates defined in this // library. template<class T> struct is_chained_base { ::boost::detail::false_t value; }; The error happens at the '::boost::detail::false_t value' line. So far, I've been surrounding any mentions of the locale header file or it's attendant classes with '#ifndef BOOST_NO_STD_LOCALE ... #endif' blocks, which allowed me to compile about half of the .cpp files. I also added code to use Microsoft's WideCharToMultiByte() and MultiByteToWideChar() methods rather than using the std::wctomb() and std::mbtowc() . Can anyone explain why the above code throws errors? It seems to be te final remaining hurdle to getting this working (well, sort of working anyway). Thanks, Bobby Nations