Index: trunk/zoo-project/zoo-kernel/service_internal.c
===================================================================
--- trunk/zoo-project/zoo-kernel/service_internal.c	(revision 451)
+++ trunk/zoo-project/zoo-kernel/service_internal.c	(revision 452)
@@ -80,5 +80,7 @@
   LPWSTR lpszTmp;
   BOOL fInit;
+  char *final_string=NULL;
   char *s=NULL;
+  map *tmpMap1;
   map *tmpMap=getMapFromMaps(conf,"lenv","sid");
   if(hMapObjectG==NULL)
@@ -106,21 +108,21 @@
     return ;
   } 
-  if (fInit)
-    memset(lpvMemG, '\0', SHMEMSIZE);
+  memset(lpvMemG, '\0', SHMEMSIZE);
   tmpMap=getMapFromMaps(conf,"lenv","status");
+  tmpMap1=NULL;
+  tmpMap1=getMapFromMaps(conf,"lenv","message");
   lpszTmp = (LPWSTR) lpvMemG;
-  for(s=tmpMap->value;*s!=NULL;s++)
+  final_string=(char*)malloc((strlen(tmpMap1->value)+strlen(tmpMap->value)+2)*sizeof(char));
+  sprintf(final_string,"%s|%s",tmpMap->value,tmpMap1->value);
+  for(s=final_string;*s!='\0';*s++){
     *lpszTmp++ = *s;
-  *lpszTmp++ = '|'; 
-  tmpMap=NULL;
-  tmpMap=getMapFromMaps(conf,"lenv","message");
-  if(tmpMap!=NULL)
-    for(s=tmpMap->value;*s!=NULL;s++)
-      *lpszTmp++ = *s;
-  *lpszTmp = '\0'; 
+  }
+  *lpszTmp++ = '\0';
+  free(final_string);
 }
 
 char* getStatus(int pid){
-  LPWSTR lpszBuf=NULL;
+  char lpszBuf[SHMEMSIZE];
+  int i=0;
   LPWSTR lpszTmp=NULL;
   LPVOID lpvMem = NULL;
@@ -155,5 +157,12 @@
     return "-1"; 
   lpszTmp = (LPWSTR) lpvMem;
-  return (char*)lpszTmp;
+  while (*lpszTmp){
+    lpszBuf[i] = (char)*lpszTmp;
+    *lpszTmp++; 
+    lpszBuf[i+1] = '\0'; 
+    i++;
+  }
+  fprintf(stderr,"READING STRING S %s\n",lpszBuf);
+  return (char*)lpszBuf;
 }
 
Index: trunk/zoo-project/zoo-kernel/zoo_service_loader.c
===================================================================
--- trunk/zoo-project/zoo-kernel/zoo_service_loader.c	(revision 451)
+++ trunk/zoo-project/zoo-kernel/zoo_service_loader.c	(revision 452)
@@ -461,13 +461,13 @@
     hasIn=1;
   }
-  map* r_inputs2=getMap(s1->content,"ResponseDocument");
+  map* r_inputs2=getMap(request_inputs,"ResponseDocument");
   if(r_inputs2==NULL)
-    r_inputs2=getMap(s1->content,"RawDataOutput");
+    r_inputs2=getMap(request_inputs,"RawDataOutput");
   map *tmpPath=getMapFromMaps(m,"lenv","cwd");
 
   if(r_inputs2!=NULL){
-    sprintf(tmp,"\"metapath=%s&request=%s&service=WPS&version=1.0.0&Identifier=%s&DataInputs=%s&%s=%s&cgiSid=%s\"",r_inputs1->value,req->value,id->value,dataInputsKVP,r_inputs2->name,r_inputs2->value,sid->value);
+    sprintf(tmp,"\"metapath=%s&request=%s&service=WPS&version=1.0.0&Identifier=%s&DataInputs=%s&%s=%s&cgiSid=%s\"",r_inputs1->value,req->value,id->value,dataInputsKVP,r_inputs2->name,dataOutputsKVP,sid->value);
     sprintf(tmpq,"metapath=%s&request=%s&service=WPS&version=1.0.0&Identifier=%s&DataInputs=%s&%s=%s",r_inputs1->value,req->value,id->value,dataInputsKVP,r_inputs2->name,dataOutputsKVP);
-  }
+    }
   else{
     sprintf(tmp,"\"metapath=%s&request=%s&service=WPS&version=1.0.0&Identifier=%s&DataInputs=%s&cgiSid=%s\"",r_inputs1->value,req->value,id->value,dataInputsKVP,sid->value);
@@ -484,5 +484,4 @@
   free(dataInputsKVP);
   free(dataOutputsKVP);
-  //printf("REQUEST IS : %s \n",tmp);
 #ifdef DEBUG
   fprintf(stderr,"REQUEST IS : %s \n",tmp);
