I'm attempting to create a buffered queue backed by a memory mapped file. The main data structure is a boost::interprocess::list of boost::interprocess::shared_ptr< Buffer<T> >. Buffer<T> is a struct that has two members: an interprocess_upgradable_mutex and a interprocess::deque. When I attempt to push an item into the deque contained by the struct I get a SIGSEGV in rbtree_best_fit::priv_mark_as_free_block() at line 1153 when using boost 1.43. I'm passing the allocator to the constructor of the deque as instructed in the documentation and I'm using all types which should be boost::interprocess safe. I've spent a couple hours on this one item and I'm not making any progress; I was wondering if someone could please lend me a hand. Source excerpt and backtrace: https://gist.github.com/ff7912d4582d68b825c3 Thanks, Matt Stump P.S. Other helpful criticism of my usage or advice on boost::interprocess would be greatly appreciated.