diff --git a/include/curl/curl.h b/include/curl/curl.h
index 61dc14cff5a38acc20bdc9528153a731650796c0..bf6a8f6c5159fecc5ae11a45fa9d67e14774fbaf 100644
--- a/include/curl/curl.h
+++ b/include/curl/curl.h
@@ -52,11 +52,11 @@ extern "C" {
  * platforms. We also provide a CURL_FORMAT_OFF_T define to use in *printf
  * format strings when outputting a variable of type curl_off_t.
  */
-#if defined(_MSC_VER)
+#if defined(_MSC_VER) || defined(__LCC__)
 /* MSVC */
   typedef signed __int64 curl_off_t;
 #define CURL_FORMAT_OFF_T "%I64d"
-#else /* MSC_VER */
+#else /* _MSC_VER || __LCC__ */
 #if (defined(__GNUC__) && defined(WIN32)) || defined(__WATCOMC__)
 /* gcc on windows or Watcom */
   typedef long long curl_off_t;
@@ -88,7 +88,7 @@ extern "C" {
 #define CURL_FORMAT_OFF_T "%ld"
 #endif
 #endif /* GCC or Watcom on Windows */
-#endif /* MSC_VER */
+#endif /* _MSC_VER || __LCC__ */
 
 #ifdef UNDEF_FILE_OFFSET_BITS
 /* this was defined above for our checks, undefine it again */
@@ -327,7 +327,7 @@ typedef enum {
  * platforms.
  */
 #if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \
-  defined(__HP_aCC) || defined(__BORLANDC__)
+  defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__)
   /* This compiler is believed to have an ISO compatible preprocessor */
 #define CURL_ISOCPP
 #else
diff --git a/lib/config-win32.h b/lib/config-win32.h
index 7eca94e44ba7586fd993f2edd9f522d5b37054e0..b1463741eae21a0b970b883dcf56a9a7be0503bd 100644
--- a/lib/config-win32.h
+++ b/lib/config-win32.h
@@ -1,6 +1,9 @@
 /* config.h.  Generated automatically by configure.  */
 /* config.h.in.  Generated automatically from configure.in by autoheader.  */
 
+#ifndef __CONFIG_WIN32_H
+#define __CONFIG_WIN32_H
+
 /* Define if on AIX 3.
    System headers sometimes define this.
    We just want to avoid a redefinition error message.  */
@@ -223,9 +226,12 @@
 /*************************************************
  * This section is for compiler specific defines.*
  *************************************************/
-#if defined(MINGW32) || defined(__WATCOMC__) /* Borland and MS don't have this */
+/* Borland and MS don't have this */
+#if defined(MINGW32) || defined(__WATCOMC__) || defined(__LCC__)
 
 /* Define if you have the <unistd.h> header file.  */
 #define HAVE_UNISTD_H 1
 
 #endif
+
+#endif
diff --git a/lib/setup.h b/lib/setup.h
index 5677bba950151e6b480fe14e060514f2a869c6ca..2243bc98642362efe38d9a375191b996341d7918 100644
--- a/lib/setup.h
+++ b/lib/setup.h
@@ -261,7 +261,8 @@ typedef int curl_socket_t;
 #error "ares does not yet support IPv6. Disable IPv6 or ares and rebuild"
 #endif
 
-#if defined(WIN32) && !defined(__CYGWIN__) && !defined(USE_ARES)
+#if defined(WIN32) && !defined(__CYGWIN__) && !defined(USE_ARES) && \
+    !defined(__LCC__)  /* lcc-win32 doesn't have _beginthreadex() */
 #ifdef ENABLE_IPV6
 #define USE_THREADING_GETADDRINFO
 #else
diff --git a/lib/timeval.h b/lib/timeval.h
index 856f5f4f6903c51b0847392d8c2cd4dbe049d09a..67b885ac6a61b645ba16ab695ccec7f13ab862dc 100644
--- a/lib/timeval.h
+++ b/lib/timeval.h
@@ -37,7 +37,8 @@
 #endif
 
 #ifndef HAVE_GETTIMEOFDAY
-#if !defined(_WINSOCKAPI_) && !defined(__MINGW32__) && !defined(_AMIGASF)
+#if !defined(_WINSOCKAPI_) && !defined(__MINGW32__) && !defined(_AMIGASF) && \
+    !defined(__LCC__)
 struct timeval {
  long tv_sec;
  long tv_usec;