diff --git a/src/threads.c b/src/threads.c
index 67b7e296ec9cc0d49b2e3aebef1a4ec6f989995b..fa7932518410d5efa41492f775a41bc885d22313 100644
--- a/src/threads.c
+++ b/src/threads.c
@@ -1,5 +1,5 @@
 #include "global.h"
-RCSID("$Id: threads.c,v 1.43 1997/09/23 15:17:18 grubba Exp $");
+RCSID("$Id: threads.c,v 1.44 1997/10/05 03:40:34 grubba Exp $");
 
 int num_threads = 1;
 int threads_disabled = 0;
@@ -410,6 +410,13 @@ void th_init(void)
 #endif /* SGI_SPROC_THREADS */
 
   THREADS_FPRINTF((stderr, "THREADS_DISALLOW() Initializing threads.\n"));
+
+#ifdef POSIX_THREADS
+#ifdef HAVE_PTHREAD_INIT
+  pthread_init();
+#endif /* HAVE_PTHREAD_INIT */
+#endif /* POSIX_THREADS */
+
   mt_init( & interpreter_lock);
   mt_lock( & interpreter_lock);
 #ifdef POSIX_THREADS