Question: Is there any reason for a program to leak when compiled in Debug mode and not in release?

(Debug means debug informations, and compiler optimization disabled, Release means no debug info / full optimization)

That's what it seems to do but I can't figure out why. Btw purify is not being helpful here

Answer: 
The first thing you want to try to isolate is whether or not the leak is due to `#define _DEBUG` or something more subtle and potentially harder to pinpoint - i.e. something getting optimized that shouldn't have been.

Compile Release with `#define _DEBUG` and see if it still happens.
It could be many things, but keep in mind it may be a false positive. In debug mode you can count on using at least twice the memory. This can make your program size expand many times, and usually once it goes up it doesn't go down again even if the memory all gets released internally. If the 'leak' doesn't get worse over time but eventually stops it's not really a leak.