Memory Leak ao usar o DirectorySearcher.FindAll ()

Tenho um processo de execução longa que precisa fazer muitas consultas no Active Directory com bastante frequência. Para esse propósito, tenho usado o espaço para nome System.DirectoryServices, usando as classes DirectorySearcher e DirectoryEntry. Percebi um vazamento de memória no aplicativo.

Pode ser reproduzido com este código:

while (true)
{
    using (var de = new DirectoryEntry("LDAP://hostname", "user", "pass"))
    {
        using (var mySearcher = new DirectorySearcher(de))
        {
            mySearcher.Filter = "(objectClass=domain)";
            using (SearchResultCollection src = mySearcher.FindAll())
            {
            }            
         }
    }
}

A documentação dessas classes diz que elas vazarão memória se Dispose () não for chamado. Eu tentei sem descartar também, apenas vazaMai memória nesse caso. Eu testei isso com as versões 2.0 e 4.0 da estrutura. Alguém já passou por isso antes? Existem soluções alternativas?

Update: Tentei executar o código em outro AppDomain, e também não pareceu ajuda

questionAnswers(5)

yourAnswerToTheQuestion