diff --git a/acconfig.h b/acconfig.h
index 7b34041..1a75fe2 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -32,6 +32,9 @@
 /* Define this if your time.h defines altzone */
 #undef HAVE_ALTZONE
 
+/* Define this if you have flockfile(), getc_unlocked(), and funlockfile() */
+#undef HAVE_GETC_UNLOCKED
+
 /* Define this if you have gethostbyname() */
 #undef HAVE_GETHOSTBYNAME
 
diff --git a/config.h.in b/config.h.in
index 6b503fe..f7f886b 100644
--- a/config.h.in
+++ b/config.h.in
@@ -97,6 +97,9 @@
 /* Define this if your time.h defines altzone */
 #undef HAVE_ALTZONE
 
+/* Define this if you have flockfile(), getc_unlocked(), and funlockfile() */
+#undef HAVE_GETC_UNLOCKED
+
 /* Define this if you have some version of gethostbyname_r() */
 #undef HAVE_GETHOSTBYNAME_R
 
diff --git a/configure b/configure
index ea54b75..4256bc4 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 
-# From configure.in Revision: 1.180 
+# From configure.in Revision: 1.182 
 
 # Guess values for system-dependent variables and create Makefiles.
 # Generated automatically using autoconf version 2.13 
@@ -5948,6 +5948,46 @@
 
 fi
 
+# check for getc_unlocked and related locking functions
+echo $ac_n "checking for getc_unlocked() and friends""... $ac_c" 1>&6
+echo "configure:5954: checking for getc_unlocked() and friends" >&5
+if eval "test \"`echo '$''{'ac_cv_have_getc_unlocked'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+cat > conftest.$ac_ext <<EOF
+#line 5960 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+int main() {
+
+	FILE *f = fopen("/dev/null", "r");
+	flockfile(f);
+	getc_unlocked(f);
+	funlockfile(f);
+
+; return 0; }
+EOF
+if { (eval echo configure:5972: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  ac_cv_have_getc_unlocked=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_have_getc_unlocked=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_have_getc_unlocked" 1>&6
+if test "$ac_cv_have_getc_unlocked" = yes
+then
+  cat >> confdefs.h <<\EOF
+#define HAVE_GETC_UNLOCKED 1
+EOF
+
+fi
 
 # THIS MUST BE LAST, IT CAN BREAK OTHER TESTS!
 # Add sys/socket.h to confdefs.h
@@ -5957,12 +5997,12 @@
 #endif
 EOF
 echo $ac_n "checking for socklen_t""... $ac_c" 1>&6
-echo "configure:5961: checking for socklen_t" >&5
+echo "configure:6001: checking for socklen_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_socklen_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5966 "configure"
+#line 6006 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5991,7 +6031,7 @@
 
 
 echo $ac_n "checking for Modules/Setup""... $ac_c" 1>&6
-echo "configure:5995: checking for Modules/Setup" >&5
+echo "configure:6035: checking for Modules/Setup" >&5
 if test ! -f Modules/Setup ; then
     if test ! -d Modules ; then
         mkdir Modules
diff --git a/configure.in b/configure.in
index 07072c5..77ab0a3 100644
--- a/configure.in
+++ b/configure.in
@@ -1291,6 +1291,20 @@
   AC_DEFINE(SIGNED_RIGHT_SHIFT_ZERO_FILLS)
 fi
 
+# check for getc_unlocked and related locking functions
+AC_MSG_CHECKING(for getc_unlocked() and friends)
+AC_CACHE_VAL(ac_cv_have_getc_unlocked, [
+AC_TRY_LINK([#include <stdio.h>],[
+	FILE *f = fopen("/dev/null", "r");
+	flockfile(f);
+	getc_unlocked(f);
+	funlockfile(f);
+], ac_cv_have_getc_unlocked=yes, ac_cv_have_getc_unlocked=no)])
+AC_MSG_RESULT($ac_cv_have_getc_unlocked)
+if test "$ac_cv_have_getc_unlocked" = yes
+then
+  AC_DEFINE(HAVE_GETC_UNLOCKED)
+fi
 
 # THIS MUST BE LAST, IT CAN BREAK OTHER TESTS!
 # Add sys/socket.h to confdefs.h
