Hello Robert

After adding nvp wrappers around all serialize commands, I am able to produce the xml archives (attached inclusive diff).

The archive produced using boost 1.37 contains the additional element '<item_version>0</item_version>. This additional element seems to be inserted by the std::vector serialization code. I compared the load function in vector.hpp from version 1.35 and 1.37 (see code below). The  version 1.37 tries to load the variable item_version that is not saved by version 1.35.

Is the condition around the additional code (BOOST_SERIALIZATION_VECTOR_VERSION < ar.get_library_version()) executed wrongly? 

David

version 1.35:
template<class Archive, class U, class Allocator>                                                                    
inline void load(                                                                                                    
    Archive & ar,                                                                                                    
    std::vector<U, Allocator> &t,                                                                                    
    const unsigned int /* file_version */,                                                                           
    mpl::true_                                                                                                       
){                                                                                                                   
    collection_size_type count(t.size());                                                                            
    ar >> BOOST_SERIALIZATION_NVP(count);                                                                            
    t.resize(count);                                                                                                 
    if (!t.empty())                                                                                                  
      ar >> make_array(detail::get_data(t),t.size());                                                                
  }   

version 1.37:
template<class Archive, class U, class Allocator>                                                                    
inline void load(                                                                                                    
    Archive & ar,                                                                                                    
    std::vector<U, Allocator> &t, 
    const unsigned int /* file_version */,                                                                           
    mpl::true_
){ 
    collection_size_type count(t.size());
    ar >> BOOST_SERIALIZATION_NVP(count);                                                                            
    t.resize(count);
    unsigned int item_version=0;
    if(BOOST_SERIALIZATION_VECTOR_VERSION < ar.get_library_version())
        ar >> BOOST_SERIALIZATION_NVP(item_version);
    if (!t.empty())
      ar >> make_array(detail::get_data(t),t.size());
  }