Hi, We have a boost archive class derived from boost::archive::xml_iarchive_impl, like this: class XmlInputArchive : public boost::archive::xml_iarchive_impl< XmlInputArchive >, public boost::archive::detail::shared_ptr_helper Its purpose is to provide diagnostics information when deserialising xml archive input, ie. which tag is failing. In porting from 1_41 to 1_49 on mingw this no longer links because the boost::archive::basic_xml_grammar<char> class's symbols are no longer exported from the serialization library. The functions this class overrides are the protected functions: void load_start( const char * name ); void load_end( const char * name ); The existing boost::archive::xml_iarchive class derives from xml_iarchive_impl, and as these functions are protected in the latter, they are not available to a class derived from boost::archive::xml_iarchive class directly. And, for the same reason, we can't create an archive class that delegates to a boost::archive::xml_iarchive instance. So neither deriving from boost::archive::xml_iarchive nor using one as a delegate are feasible solutions. Is there a way of creating an xml_iarchive class that has access to the load_start, load_end functions? Or perhaps there is another way to get the diagnostics information about which xml tags are being processed? Thanks, Ken Appleby