diff --git a/configure.ac b/configure.ac
index 2620d82476f62f72553e0a12f85031541323000c..60b946a3c7560fad4e972b461b16cfc1b1cf66e6 100755
--- a/configure.ac
+++ b/configure.ac
@@ -163,6 +163,12 @@ fi
 AM_CONDITIONAL([HAVE_BLAS], [test x"$ax_blas_ok" = "xyes"])
 AM_CONDITIONAL([HAVE_LAPACK], [test x"$ax_lapack_ok" = "xyes"])
 
+case ${host_os} in
+  *mingw32*)
+    # Ensure that -lpthread is statically linked under MinGW
+    PTHREAD_LIBS="-Wl,-Bstatic -lpthread -Wl,-Bdynamic"
+    ;;
+esac
 AX_PTHREAD
 
 AC_CONFIG_FILES([Makefile
diff --git a/mex/build/matlab/configure.ac b/mex/build/matlab/configure.ac
index 0e43b3995b6ad743ecd17a9b29019796df18d312..f7a668f289010089378750c447581901b79f1344 100644
--- a/mex/build/matlab/configure.ac
+++ b/mex/build/matlab/configure.ac
@@ -60,7 +60,15 @@ AC_PROG_RANLIB
 AX_PROG_LN_S
 AC_PROG_MKDIR_P
 AM_PROG_AR
+
+case ${host_os} in
+  *mingw32*)
+    # Ensure that -lpthread is statically linked under MinGW
+    PTHREAD_LIBS="-Wl,-Bstatic -lpthread -Wl,-Bdynamic"
+    ;;
+esac
 AX_PTHREAD
+
 # Check for boost libraries used in estimation DLL
 AC_LANG_PUSH([C++])
 AX_BOOST_BASE([1.36], [], [AC_MSG_ERROR([Can't find Boost >= 1.36])])