Index: trunk/zoo-project/zoo-kernel/zoo_service_loader.c
===================================================================
--- trunk/zoo-project/zoo-kernel/zoo_service_loader.c	(revision 417)
+++ trunk/zoo-project/zoo-kernel/zoo_service_loader.c	(revision 418)
@@ -1673,5 +1673,5 @@
 	    addMapsToMaps(&request_input_real_format,tmpmaps);
 	}
-	
+
 #ifdef DEBUG
 	fprintf(stderr,"******TMPMAPS*****\n");
@@ -1749,4 +1749,5 @@
 	while(cur1!=NULL && cur1->type != XML_ELEMENT_NODE)
 	  cur1=cur1->next;
+	int cur1cnt=0;
 	while(cur1){
 	  /**
@@ -1769,4 +1770,19 @@
 	      tmpmaps->name=strdup((char*)val);
 	    }
+	    if(asRaw==true)
+	      addToMap(request_inputs,"RawDataOutput",(char*)val);
+	    else{
+	      if(cur1cnt==0)
+		addToMap(request_inputs,"ResponseDocument",(char*)val);
+	      else{
+		map* tt=getMap(request_inputs,"ResponseDocument");
+		char* tmp=strdup(tt->value);
+		free(tt->value);
+		tt->value=(char*)malloc((strlen(tmp)+strlen((char*)val)+1)*sizeof(char));
+		sprintf(tt->value,"%s;%s",tmp,(char*)val);
+		free(tmp);
+	      }
+	    }
+	    cur1cnt+=1;
 	    xmlFree(val);
 	  }
@@ -1869,8 +1885,4 @@
 		xmlFree(val);
 	      }
-	      if(request_output_real_format==NULL)
-		request_output_real_format=dupMaps(&tmpmaps);
-	      else
-		addMapsToMaps(&request_output_real_format,tmpmaps);
 	      cur2=cur2->next;
 	      while(cur2!=NULL && cur2->type != XML_ELEMENT_NODE)
@@ -1883,4 +1895,8 @@
 	}
       }
+      if(request_output_real_format==NULL)
+	request_output_real_format=dupMaps(&tmpmaps);
+      else
+	addMapsToMaps(&request_output_real_format,tmpmaps);
       if(tmpmaps!=NULL){
 	freeMaps(&tmpmaps);
