diff --git a/include/curl/curl.h b/include/curl/curl.h
index dd70a3cd28cf7aa4892266ce8d7603c2d59a7661..f34a3effef1d3e22b6fda70acceac8a1d6f093c2 100644
--- a/include/curl/curl.h
+++ b/include/curl/curl.h
@@ -70,9 +70,23 @@
 extern "C" {
 #endif
 
-/* silly trick to preserve functionality with older code, but making it use
-   our name space for the future */
-#define HttpPost curl_httppost
+/*
+ * We want the typedef curl_off_t setup for large file support on all
+ * platforms.
+ */
+#if defined(_MSC_VER)
+/* MSVC */
+  typedef signed __int64 curl_off_t;
+#else
+#if (defined(__GNUC__) && defined(WIN32)) || defined(__WATCOMC__)
+/* gcc on windows or Watcom */
+  typedef long long curl_off_t;
+#else
+/* "normal" approach, do not that this does not necessarily mean that
+   the type is >32 bits, see the SIZEOF_CURL_OFF_T define for that! */
+  typedef off_t curl_off_t;
+#endif
+#endif
 
 struct curl_httppost {
   struct curl_httppost *next;       /* next entry in the list */