Variadic macros is only available from Visual Studio 2005+
diff --git a/src/trace.h b/src/trace.h
index 4d4e3bf..486084d 100644
--- a/src/trace.h
+++ b/src/trace.h
@@ -46,8 +46,16 @@ GIT_INLINE(void) git_trace__write_fmt(
#else
+GIT_INLINE(void) git_trace__null(
+ git_trace_level_t level,
+ const char *fmt, ...)
+{
+ GIT_UNUSED(level);
+ GIT_UNUSED(fmt);
+}
+
#define git_trace_level() ((void)0)
-#define git_trace(lvl, ...) ((void)0)
+#define git_trace git_trace__null
#endif
diff --git a/src/win32/msvc-compat.h b/src/win32/msvc-compat.h
index f79acaa..fa4e291 100644
--- a/src/win32/msvc-compat.h
+++ b/src/win32/msvc-compat.h
@@ -38,7 +38,7 @@
typedef SSIZE_T ssize_t;
/* define snprintf using variadic macro support if available */
-#if _MSC_VER >= 1400
+#if _MSC_VER >= 1500
# define snprintf(BUF, SZ, FMT, ...) _snprintf_s(BUF, SZ, _TRUNCATE, FMT, __VA_ARGS__)
#else
# define snprintf _snprintf