--- 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,
