Here is what works for me (.Net 4):
Instead of this:
principalContext = new PrincipalContext(ContextType.Domain)
create the principal context with the domain string as well:
E.g.
principalContext = new PrincipalContext(ContextType.Domain,"MYDOMAIN")
It should be fixed in 4.5. See comment, hasn’t been fixed yet, but adding the second argument still works as workaround.