Well the first thing you should do is get a memory validator program that checks for resource leaks. There are several out there, I use Bounds Checker but I sure one of the others would work just as well. It has been a while since I visited any of thier sites, but they usualy offer a 30 day free trial that you can download, so it is well worth trying. If the nodes of the tree are actualy class that allocate memory, you could be leaking it there. Since malloc and free no nothing about destructors and therefor will not call them, use new and delete instead. You could also try using the memory validation functions in the SDK, they require adding additional code to your program inorder to use them, but I understand they work quite well. I beleive there is at least one article at CP some where, on this subject. Good Luck! INTP