The iterators returned by the Stage::create*Iterator() calls are returned as pointers to heap objects. This is the only place we do that sort of thing, and I keep forgetting to insert the "delete iter" line in my code. I'm wondering if we want to return a shared_ptr here or something. -mpg