You were just plain calling it wrong. The arguments in the function declaration were not matching the arguments you were passing. The lack of prototypes is a cause. Try the attached patch against util.c, it changes mfprintf to adopt the argument list format used by the references elsewhere. -- James Cameron mailto:quozl at us.netrek.org http://quozl.netrek.org/ -------------- next part -------------- --- old-netrek-server/Vanilla/robotd/util.c 2006-05-23 11:27:12.000000000 +1000 +++ new-netrek-server/Vanilla/robotd/util.c 2006-05-23 11:27:12.000000000 +1000 @@ -442,21 +442,15 @@ } #endif -/* This function causes a SIGSEV, dunno why JKH */ -/* replacing it with a straight fprintf which */ -/* accomplishes the same thing */ -mfprintf(char *format, ...) +mfprintf(FILE *fo, char *format, ...) { - FILE *fo; va_list ap; if(!read_stdin) return; va_start(ap, format); - fo = va_arg(ap, FILE *); (void)vfprintf(fo, format, ap); - fflush(stdout); + fflush(fo); va_end(ap); } -