Index: /trunk/zoo-project/zoo-kernel/service_internal.c
===================================================================
--- /trunk/zoo-project/zoo-kernel/service_internal.c	(revision 509)
+++ /trunk/zoo-project/zoo-kernel/service_internal.c	(revision 510)
@@ -3225,5 +3225,8 @@
 	  fcontent[hInternet->ihandle[index].nDataLen]=0;
 	  fsize=hInternet->ihandle[index].nDataLen;
-	  mimeType=strdup((char*)hInternet->ihandle[index].mimeType);
+	  if(hInternet->ihandle[index].mimeType==NULL)
+	    mimeType=strdup("none");
+	  else
+	    mimeType=strdup((char*)hInternet->ihandle[index].mimeType);
 	  
 	  map* tmpMap=getMapOrFill(&content->content,"value","");
Index: /trunk/zoo-project/zoo-kernel/zoo_loader.c
===================================================================
--- /trunk/zoo-project/zoo-kernel/zoo_loader.c	(revision 509)
+++ /trunk/zoo-project/zoo-kernel/zoo_loader.c	(revision 510)
@@ -97,5 +97,4 @@
        while((r=fread(buffer,sizeof(char),1,cgiIn))){
 	 buffer[1]=0;
-	 cgiContentLength+=r;
 	 if(res==NULL){
 	   res=(char*)malloc(2*sizeof(char));
@@ -103,9 +102,9 @@
 	 }
 	 else{
-	   char *tmp=zStrdup(res);
-	   res=(char*)realloc(res,(strlen(tmp)+2)*sizeof(char));
-	   sprintf(res,"%s%s",tmp,buffer);
-	   free(tmp);
+	   res=(char*)realloc(res,(cgiContentLength+2)*sizeof(char));
+	   memcpy(res + cgiContentLength, buffer, sizeof(char));
+	   res[cgiContentLength+1]=0;
 	 }
+	 cgiContentLength+=r;
        }
        delete[] buffer;
Index: /trunk/zoo-project/zoo-kernel/zoo_service_loader.c
===================================================================
--- /trunk/zoo-project/zoo-kernel/zoo_service_loader.c	(revision 509)
+++ /trunk/zoo-project/zoo-kernel/zoo_service_loader.c	(revision 510)
@@ -1981,4 +1981,5 @@
     tmps=tmpsptr->nodesetval;
     if(tmps->nodeNr==0){
+      xmlXPathFreeObject(tmpsptr);
       tmpsptr=extractFromDoc(doc,"/*/*/*[local-name()='RawDataOutput']");
       tmps=tmpsptr->nodesetval;
@@ -2031,4 +2032,5 @@
 	    free(tmpmaps->name);
 	    tmpmaps->name=zStrdup((char*)val);
+	    xmlFree(val);
 	  }
 	  cur2=cur2->next;
