--- utility.c.orig	Thu May 23 19:02:28 2002
+++ utility.c	Fri Aug  2 22:29:49 2002
@@ -1159,12 +1159,18 @@
 }
 
 void Print(int vb, char *fmt, ...) {
-  va_list ap;
+  va_list ap, ap2;
   va_start(ap,fmt);
+  #ifdef __va_copy
+  __va_copy(ap2, ap);
+  #else
+  /* FIXME: C99 has va_copy() - test for C99 and use it if present */ 
+  ap2 = ap;
+  #endif
   if (vb&display_options) vprintf(fmt, ap);
   fflush(stdout);
   if (time_limit>99 || tc_time_remaining>6000 || vb==4095) {
-    if (log_file) vfprintf(log_file, fmt, ap);
+    if (log_file) vfprintf(log_file, fmt, ap2);
     if (log_file) fflush(log_file);
   }
   va_end(ap);