diff -urp src.old/winsup/cygwin/thread.cc src/winsup/cygwin/thread.cc --- src.old/winsup/cygwin/thread.cc Mon Sep 23 14:15:17 2002 +++ src/winsup/cygwin/thread.cc Mon Sep 23 14:22:22 2002 @@ -1031,7 +1031,11 @@ void pthread_key::run_destructor () const { if (destructor) - destructor (get ()); + { + void *value = get (); + if (value) + destructor (value); + } } /*pshared mutexs: