Currently portable binary archive is broken on AIX platforms. The reason is because the default 'char' type is unsigned on this platform. Whereas for most other platforms it is signed, By going through the portable binary and replacing 'char' with 'signed char' this long standing bug is fixed. I have tested the fix on Linux(opensuse103,opensuse113, HPUX, AIX(power6,power7) This is a fairly safe and quick fix, can I please ask the authors of this library to add this fix, for the next version of boost. Here are the changes I made: (flagged under ' // changed ' comment //-------------------------------------------------------- portable_binary_iarchive.hpp void load(signed char & t){ // changed this->primitive_base_t::load(t); } //------------------------------------------------------------- portable_binary_iarchive.cpp void portable_binary_iarchive::load_impl(boost::intmax_t & l, char maxsize){ signed char size; // changed l = 0; this->primitive_base_t::load(size); if(0 == size){ return; } bool negative = (size < 0); ...... // ----------------------------------------------------------------- portable_binary_oarchive.hpp void save(const signed char & t){ // changed this->primitive_base_t::save(t); } // ----------------------------------------------------------- portable_binary_oarchive.cpp void portable_binary_oarchive::save_impl( const boost::intmax_t l, const char maxsize ){ signed char size = 0; // changed if(l == 0){ this->primitive_base_t::save(size); return; } .......... // ------------------------------ Ta, Avi