thread handling fix for BSD and Solaris