--- utility.c.orig 2003-12-31 01:36:43.778210312 -0500 +++ utility.c 2003-12-31 01:37:50.667041664 -0500 @@ -1134,13 +1134,19 @@ } 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) { - va_start(ap,fmt); - if (log_file) vfprintf(log_file, fmt, ap); + va_start(ap2,fmt); + if (log_file) vfprintf(log_file, fmt, ap2); if (log_file) fflush(log_file); } va_end(ap);