$OpenBSD: patch-src_xmlrpc_builddecomp_c,v 1.1.1.1 2006/12/18 14:39:56 espie Exp $
--- src/xmlrpc_builddecomp.c.orig	Mon Dec 18 12:15:59 2006
+++ src/xmlrpc_builddecomp.c	Mon Dec 18 12:47:57 2006
@@ -26,11 +26,15 @@ typedef double va_double;
 ** tricky fashions. We don't why Python does this, but since we're
 ** abusing our va_list objects in a similar fashion, we'll copy them
 ** too. */
+#if defined(va_copy)
+#define VA_LIST_COPY(dest, src) va_copy(dest, src)
+#else
 #if VA_LIST_IS_ARRAY
 #define VA_LIST_COPY(dest,src) memcpy((dest), (src), sizeof(va_list))
 #else
 #define VA_LIST_COPY(dest,src) ((dest) = (src))
 #endif
+#endif
 
 /*=========================================================================
 **  Creating XML-RPC values.
@@ -460,6 +464,7 @@ xmlrpc_build_value_va(xmlrpc_env *    co
         
         if (!envP->fault_occurred)
             XMLRPC_ASSERT_VALUE_OK(*valPP);
+	va_end(args_copy);
         
         *tailP = formatCursor;
     }
@@ -887,6 +892,7 @@ xmlrpc_decompose_value_va(xmlrpc_env *  
     if (!envP->fault_occurred) {
         XMLRPC_ASSERT(*format_copy == '\0');
     }
+    va_end(args_copy);
 }
 
 
@@ -925,6 +931,7 @@ xmlrpc_parse_value_va(xmlrpc_env *   con
     if (!envP->fault_occurred) {
         XMLRPC_ASSERT(*format_copy == '\0');
     }
+    va_end(args_copy);
 }
 
 
