--- /dev/null
+--- akanga-1.0.7/src/print.c.orig Sat Aug 7 11:25:41 1999
++++ akanga-1.0.7/src/print.c Sun Oct 27 20:10:43 2002
+@@ -92,7 +92,7 @@
+ if (flags & FMT_long)
+ n = va_arg(format->args, long);
+ else if (flags & FMT_short)
+- n = va_arg(format->args, short);
++ n = (short)va_arg(format->args, int);
+ else
+ n = va_arg(format->args, int);
+
+@@ -273,11 +273,11 @@
+ va_list ap, saveargs;
+
+ va_start(ap, fmt);
+- saveargs = format->args;
+- format->args = ap;
++ __va_copy(saveargs, format->args);
++ __va_copy(format->args, ap);
+ n += printfmt(format, fmt);
+ va_end(format->args);
+- format->args = saveargs;
++ __va_copy(format->args, saveargs);
+
+ return n + format->flushed;
+ }
+@@ -304,7 +304,7 @@
+ format.u.n = fd;
+
+ va_start(ap, fmt);
+- format.args = ap;
++ __va_copy(format.args, ap);
+ printfmt(&format, fmt);
+ va_end(format.args);
+
+@@ -348,7 +348,7 @@
+
+ format.u.n = 1;
+ va_start(ap, fmt);
+- format.args = ap;
++ __va_copy(format.args, ap);
+ result = memprint(&format, fmt, ealloc(PRINT_ALLOCSIZE), PRINT_ALLOCSIZE);
+ va_end(format.args);
+ return result;
+@@ -361,7 +361,7 @@
+
+ format.u.n = 0;
+ va_start(ap, fmt);
+- format.args = ap;
++ __va_copy(format.args, ap);
+ result = memprint(&format, fmt, nalloc(PRINT_ALLOCSIZE), PRINT_ALLOCSIZE);
+ va_end(format.args);
+ return result;