diff -up ppp-2.4.4/pppd/utils.c.varargs ppp-2.4.4/pppd/utils.c --- ppp-2.4.4/pppd/utils.c.varargs 2004-11-04 05:02:26.000000000 -0500 +++ ppp-2.4.4/pppd/utils.c 2008-08-28 17:34:29.000000000 -0400 @@ -290,7 +290,7 @@ vslprintf(buf, buflen, fmt, args) #if 0 /* not used, and breaks on S/390, apparently */ case 'r': f = va_arg(args, char *); -#ifndef __powerpc__ +#if !defined (__powerpc__) && !defined(__s390__) && !defined(__s390x__) && !defined(__x86_64__) n = vslprintf(buf, buflen + 1, f, va_arg(args, va_list)); #else /* On the powerpc, a va_list is an array of 1 structure */