There are some problem with how this class uses the supplied MemoryManager instance. In one case, it does not use it when it could. In other cases, it uses the wrong MemoryManager instance for temporary allocations. It also provides a better solution for a previous change for GCC 3.4.3.
Committers, can you review the patch?