diff --git a/lib/hostthre.c b/lib/hostthre.c
index a1204cf9cbea295b4157275edd3f5b25604cbc83..c364ebfab565e5fef99b0d2bb0a343e61e94ea02 100644
--- a/lib/hostthre.c
+++ b/lib/hostthre.c
@@ -88,6 +88,10 @@
 /* The last #include file should be: */
 #include "memdebug.h"
 
+#if defined(_MSC_VER) && defined(CURL_NO__BEGINTHREADEX)
+#pragma message ("No _beginthreadex() available in this RTL")
+#endif
+
 /***********************************************************************
  * Only for Windows threaded name resolves builds
  **********************************************************************/
diff --git a/lib/setup.h b/lib/setup.h
index 201e783d5e37747646b0613b5ae4b2a43524f46e..4b3a50765faa22a3f4048c983ce6adaf8b0acd6d 100644
--- a/lib/setup.h
+++ b/lib/setup.h
@@ -262,6 +262,14 @@ typedef int curl_socket_t;
 #endif
 #endif
 
+/* "cl -ML" or "cl -MLd" implies a single-threaded runtime library where
+   _beginthreadex() is not available */
+#if defined(_MSC_VER) && !defined(_MT) && !defined(USE_ARES)
+#undef USE_THREADING_GETADDRINFO
+#undef USE_THREADING_GETHOSTBYNAME
+#define CURL_NO__BEGINTHREADEX
+#endif
+
 #ifdef mpeix
 #define IOCTL_3_ARGS
 #endif