
Robert, I think I found the problem, but I'm not sure on how to code a workaround. Apparently BCB2006 introduced a bug which causes writes to a BOOST_STRONG_TYPEDEF to fail, just as if a temporary was updated. This is affecting specifically the reading of archive versions. The code below is an example of an effective workaround: version_type input_library_version; #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) && __BORLANDC__ >= 0x580 unsigned int v; * this->This() >> v; input_library_version.t = v; #else * this->This() >> input_library_version; #endif Probably it would be sufficient to just pass input_library_version.t to operator>> . The real problem I have with this workaround is that it would be much better to factor it into BOOST_STRONG_TYPEDEF's definition, but I'm not sure about what is exactly causing the problem and I'm not very confident about my ability to add conditions to a macro definition. Cheers, Nicola Musatti