There is a memory Leak in Resolver::GetRemoteDocument const SchemaDocument* schemaDocument; schemaDocument = new SchemaDocument(d, &resolver); //This never gets deleted ? return schemaDocument; How do you delete the allocated memory?