XMLRPC_DupValueNew incorrectly handles base64 values. Currently it will convert base64 types to string types. Here's the patch we're using.
diff --git a/src/xmlrpc.c b/src/xmlrpc.c
index f668f07..066fd0e 100644
--- a/src/xmlrpc.c
+++ b/src/xmlrpc.c
@@ -1645,9 +1645,11 @@ XMLRPC_VALUE XMLRPC_DupValueNew (XMLRPC_VALUE xSource) {
XMLRPC_SetValueInt (xReturn, xSource->i);
break;
case xmlrpc_string:
wow, that's been hanging out for a long time.
fixed in cvs. thanks for the patch!