diff --git a/configure b/configure
index b9104bb517ad38767a1150c37905da4ef3705a1f..c5c58cfe303157e9d9145242092a2fecb684936c 100755
--- a/configure
+++ b/configure
@@ -4254,17 +4254,17 @@ fi
 # do this before the optional library checks as some of them require pthreads
 if ! disabled pthreads && ! enabled w32threads && ! enabled os2threads; then
     enable pthreads
-    if check_func pthread_join; then
+    if check_func pthread_join && check_func pthread_create; then
         :
-    elif check_func pthread_join -pthread; then
+    elif check_func pthread_join -pthread && check_func pthread_create -pthread; then
         add_cflags -pthread
         add_extralibs -pthread
-    elif check_func pthread_join -pthreads; then
+    elif check_func pthread_join -pthreads && check_func pthread_create -pthreads; then
         add_cflags -pthreads
         add_extralibs -pthreads
-    elif check_func pthread_join -lpthreadGC2; then
+    elif check_func pthread_join -lpthreadGC2 && check_func pthread_create -lpthreadGC2; then
         add_extralibs -lpthreadGC2
-    elif ! check_lib pthread.h pthread_join -lpthread; then
+    elif ! check_lib pthread.h pthread_join -lpthread && ! check_lib pthread.h pthread_create -lpthread; then
         disable pthreads
     fi
 fi