Ya got part of it right Morph ...
A memory leak can be caused by poor programming, when one does not release the equal amount of memory on exit from the program that it reserved while it was running. Old timers know it as FREEing and FRETing of memory.
So, if you fire up the program and it asks for 500K of memory to run and it only releases 250K on exit, 250K is now locked out and unuseable. If you use the program alot, you will eventually "run out" of memory.
The other case is that the programming langauge has a bug in it and it will not release memory that was used during execution. Java programmers do not have to worry about releasing memory on exit ... Java takes care of it all. In the earlier days of Java, at times it would not do a good job of it ... hence a memory leak.
C++, if I remember correctly, does not have automatic memory release so a C programmer must pay careful attention to the allocation and de-allocation of memory.
From the description that Zoldamite has given, it does not appear to be a memory leak to me ... at least from the AH standpoint. It hasn't run long enough to suck up alot of memory, nor has he exited from AH to allow AH to not release the memory that it had allocated.
It could be a myriad of things, but I don't believe that its a memory leak ... something else is wrong.