while trying to add hesiod/dns support, i've noticed, what looks as a problem: in nss_tls.h, the function name##_getstate(...) can return a static pointer, which gets freed in name##_endstate(...), as far as i know, freeing a non malloced memory is asking for trouble. proposed fix, instead of static, also do a calloc(...). danny