/* ===================================== */
#elif defined(_MSC_VER)
-# if (_MSC_VER >= 900)
+# if (_MSC_VER >= 900) && (_INTEGRAL_MAX_BITS >= 64)
# define CURL_SIZEOF_LONG 4
# define CURL_OFF_T __int64
# define CURL_FORMAT_CURL_OFF_T "I64d"
# define LONG_LONG_TYPE long long
# define HAVE_LONG_LONG_TYPE
#else
-# if defined(_MSC_VER) && (_MSC_VER >= 900)
+# if defined(_MSC_VER) && (_MSC_VER >= 900) && (_INTEGRAL_MAX_BITS >= 64)
# define LONG_LONG_TYPE __int64
# define HAVE_LONG_LONG_TYPE
# else
# ifdef HAVE_STRTOLL
# define curlx_strtoofft strtoll
# else
-# if defined(_MSC_VER) && (_MSC_VER >= 1300)
+# if defined(_MSC_VER) && (_MSC_VER >= 1300) && (_INTEGRAL_MAX_BITS >= 64)
_CRTIMP __int64 __cdecl _strtoi64(const char *, char **, int);
# define curlx_strtoofft _strtoi64
# else