Hello! I'm having trouble porting my application from boost.shmem to boost.interprocess. Here are my typedefs: //-------------------- typedef std::pair< const int, MyNode> MyPair; typedef boost::interprocess::allocator < MyPair, boost::interprocess::managed_shared_memory::segment_manager> MyAlloc; typedef boost::interprocess::multimap< const int, MyNode, std::less<const int>, MyAlloc> MyMap; typedef MyMap::iterator MyMapIterator; //-------------------- In the first process I do: //-------------------- boost::interprocess::shared_memory_object::remove(SEGMENT_NAME); boost::interprocess::managed_shared_memory segment(boost::interprocess::create_only, SEGMENT_NAME, SEGMENT_SIZE); MyAlloc myAlloc(segment.get_segment_manager()); std::less<const int> myComparator; MyMap* myMap = segment.construct<MyMap>(MAP_NAME)(myComparator, myAlloc); //-------------------- In the second process I do: //-------------------- boost::interprocess::managed_shared_memory segment(boost::interprocess::open_only, SEGMENT_NAME); MyMap* myMap = segment.find<MyMap>(MAP_NAME).first; MyMapIterator it = myMap->begin(); // <- CRASHES HERE! for ( ; it != myMap->end; it++) { //... } //-------------------- The myMap pointer in the second process is not NULL, it has the same value as in the first process. Everything worked fine with boost.shmem. Anybody got a clue, what is wrong here and what is so different between how boost.shmem and boost.inteprocess perform these operations? Can boost.shmem and boost.interprocess coexist? If I'm stuck with boost.shmem for storing the map in shared memory, can I still use an upgradable mutex from boost.interprocess? Thanks, Szilard