Index: /trunk/zoo-project/zoo-kernel/service_internal.c
===================================================================
--- /trunk/zoo-project/zoo-kernel/service_internal.c	(revision 499)
+++ /trunk/zoo-project/zoo-kernel/service_internal.c	(revision 500)
@@ -1913,4 +1913,6 @@
 
 	xmlAddChild(nc3,xmlNewText(BAD_CAST base64(tmp3->value, atoi(rs->value))));
+	if(tmp1==NULL || (tmp1!=NULL && strncmp(tmp1->value,"base64",6)!=0))
+	  xmlNewProp(nc3,BAD_CAST "encoding",BAD_CAST "base64");
 	if(!isSized){
 	  freeMap(&rs);
@@ -2305,5 +2307,5 @@
 	free(file_name);
 	free(file_url);	
-      }
+	}
 #ifdef USE_MS
       else{
@@ -2420,10 +2422,10 @@
   bmem = BIO_new(BIO_s_mem());
   b64 = BIO_push(b64, bmem);
-  BIO_write(b64, input, length);
+  BIO_write(b64, input, length+1);
   BIO_flush(b64);
   BIO_get_mem_ptr(b64, &bptr);
 
-  char *buff = (char *)malloc((bptr->length)*sizeof(char));
-  memcpy(buff, bptr->data, bptr->length-1);
+  char *buff = (char *)malloc((bptr->length+1)*sizeof(char));
+  memcpy(buff, bptr->data, bptr->length);
   buff[bptr->length-1] = 0;
 
