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);
 }
-