diff --git a/src/ChangeLog b/src/ChangeLog
index 590f3861..9b0c2005 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* log.c: Set WGET_USE_STDARG if __STDC__ is defined and stdarg.h
+	is present.
+
 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
 
 	* progress.c (bar_create): If INITIAL is larger than TOTAL, fix
diff --git a/src/log.c b/src/log.c
index 85a8b5ed..89e46d9a 100644
--- a/src/log.c
+++ b/src/log.c
@@ -19,6 +19,16 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #include <config.h>
 
+/* Use stdarg only if the compiler supports ANSI C and stdarg.h is
+   present.  We check for both because there are configurations where
+   stdarg.h exists, but doesn't work. */
+#undef WGET_USE_STDARG
+#ifdef __STDC__
+# ifdef HAVE_STDARG_H
+#  define WGET_USE_STDARG
+# endif
+#endif
+
 #include <stdio.h>
 #ifdef HAVE_STRING_H
 # include <string.h>
@@ -26,8 +36,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 # include <strings.h>
 #endif
 #include <stdlib.h>
-#ifdef HAVE_STDARG_H
-# define WGET_USE_STDARG
+#ifdef WGET_USE_STDARG
 # include <stdarg.h>
 #else
 # include <varargs.h>