diff -urN a/configure.ac b/configure.ac --- a/configure.ac 2014-10-11 22:42:37.081698300 +0100 +++ b/configure.ac 2014-10-11 22:42:40.177875400 +0100 @@ -1664,8 +1664,8 @@ AC_HEADER_STDC AC_CHECK_HEADERS(asm/types.h conio.h direct.h dlfcn.h errno.h \ fcntl.h grp.h \ -ieeefp.h io.h langinfo.h libintl.h poll.h process.h pthread.h \ -shadow.h signal.h stdint.h stropts.h termios.h thread.h \ +ieeefp.h io.h langinfo.h libintl.h poll.h process.h \ +shadow.h signal.h stdint.h stropts.h termios.h \ unistd.h utime.h \ sys/audioio.h sys/bsdtty.h sys/epoll.h sys/event.h sys/file.h sys/loadavg.h \ sys/lock.h sys/mkdev.h sys/modem.h \ diff -urN a/Python/thread.c b/Python/thread.c --- a/Python/thread.c 2014-10-11 22:42:38.120757700 +0100 +++ b/Python/thread.c 2014-10-11 22:42:40.178875500 +0100 @@ -8,6 +8,12 @@ #include "Python.h" +#ifdef __MINGW32__ +# if !defined(HAVE_PTHREAD_H) || defined(NT_THREADS) +# undef _POSIX_THREADS +# endif +#endif + #ifndef _POSIX_THREADS /* This means pthreads are not implemented in libc headers, hence the macro not present in unistd.h. But they still can be implemented as an external