There is a memory leak here, if a thread has registered some per-thread data when we delete the key. Fixing it will require walking through the per-thread data of every thread and freeing the objects... and watching for deadlocks in the case where a thread is exiting at the same time. * threads.c (k5_key_delete) [pthread case]: Reset flags and destructor function pointer to unset state. (krb5int_thread_support_init, krb5int_thread_support_fini): If SHOW_INITFINI_FUNCS is defined, print some tracing messages. To generate a diff of this commit: cvs diff -r1.29 -r1.30 krb5/src/util/support/ChangeLog cvs diff -r1.17 -r1.18 krb5/src/util/support/threads.c