--- xds.c.orig 2005-06-03 04:50:56.000000000 +1000 +++ xds.c 2011-08-29 16:47:33.000000000 +1000 @@ -383,7 +383,7 @@ int xds_vencode(xds_t *xds, const char * /* Execute the engine. */ used_buffer_size = 0; - args_backup = args; + va_copy(args_backup, args); rc = (*xds->engines[pos].engine)( xds, xds->engines[pos].context, xds->buffer + xds->buffer_len,