Sorry to reopen an old zombie thread but I have been seeing this issue in BOOST serialisation in a different context.
It seems that looking into the stack trace at the point of failure, BOOST is circumventing the delete override and going straight to the debug allocator and calling free() directly. This sounds pretty awful.
It is calling _DELETE_CRT() which in turn manually calls an object destructor and hands off the address to free(). Blurgh.
We override new/delete globally, but it seems that the BOOST serialization code for debug builds is passing off our allocators address to the debug heap allocator which causes the barf. I'm not sure why they would do this in BOOST, but if I find out, I will update the thread.
Discussion area about developing or extending OGRE, adding plugins for it or building applications on it. No newbie questions please, use the Help forum for that.