Index: /trunk/zoo-project/zoo-kernel/service_internal.c
===================================================================
--- /trunk/zoo-project/zoo-kernel/service_internal.c	(revision 439)
+++ /trunk/zoo-project/zoo-kernel/service_internal.c	(revision 440)
@@ -112,4 +112,10 @@
   for(s=tmpMap->value;*s!=NULL;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'; 
 }
@@ -208,4 +214,10 @@
 	for(s=tmpMap->value;*s!=NULL && *s!=0;s++){
 	  *s1++=*s;
+	}
+	*s1++='|';
+	tmpMap=getMapFromMaps(conf,"lenv","message");
+	if(tmpMap!=NULL)
+	  for(s=tmpMap->value;*s!=NULL && *s!=0;s++){
+	    *s1++=*s;
 	}
 	*s1=NULL;
Index: /trunk/zoo-project/zoo-kernel/zoo_service_loader.c
===================================================================
--- /trunk/zoo-project/zoo-kernel/zoo_service_loader.c	(revision 439)
+++ /trunk/zoo-project/zoo-kernel/zoo_service_loader.c	(revision 440)
@@ -1352,5 +1352,5 @@
 		map* ltmp=getMap(tmpmaps->content,"method");
 		if(l==4){
-		  if(!(ltmp!=NULL && strcmp(ltmp->value,"POST")==0)
+		  if(!(ltmp!=NULL && strncmp(ltmp->value,"POST",4)==0)
 		     && CHECK_INET_HANDLE(hInternet)){
 		    if(loadRemoteFile(m,tmpmaps->content,hInternet,(char*)val)!=0){
Index: /trunk/zoo-project/zoo-services/utils/status/Makefile
===================================================================
--- /trunk/zoo-project/zoo-services/utils/status/Makefile	(revision 439)
+++ /trunk/zoo-project/zoo-services/utils/status/Makefile	(revision 440)
@@ -4,5 +4,5 @@
 
 cgi-env/wps_status.zo: service.c
-	g++ ${CFLAGS} -shared -fpic -o cgi-env/wps_status.zo ./service.c ../../../zoo-kernel/service_internal.o ${JS_LDFLAGS} ${JSLDFLAGS} ${GDAL_LIBS} ${XML2LDFLAGS} ${MACOS_LD_FLAGS} ${ZOO_LDFLAGS} ${MACOS_LD_NET_FLAGS} `xslt-config --libs` -lfcgi
+	g++ ${CFLAGS} -shared -fpic -o cgi-env/wps_status.zo ./service.c ../../../zoo-kernel/service_internal.o ${ZRPATH}/zoo-kernel/${MS_FILE} ${MS_LDFLAGS} ${JS_LDFLAGS} ${JSLDFLAGS} ${GDAL_LIBS} ${XML2LDFLAGS} ${MACOS_LD_FLAGS} ${ZOO_LDFLAGS} ${MACOS_LD_NET_FLAGS} `xslt-config --libs` -lfcgi
 
 clean:
Index: /trunk/zoo-project/zoo-services/utils/status/cgi-env/updateStatus.xsl
===================================================================
--- /trunk/zoo-project/zoo-services/utils/status/cgi-env/updateStatus.xsl	(revision 439)
+++ /trunk/zoo-project/zoo-services/utils/status/cgi-env/updateStatus.xsl	(revision 440)
@@ -7,4 +7,5 @@
   <xsl:output method="xml"/>
   <xsl:param name="value" select="string('-1')"/>
+  <xsl:param name="message" select="string('-1')"/>
 
   <xsl:template match="@*|node()">
@@ -14,8 +15,11 @@
   </xsl:template>
 
-  <xsl:template match="/wps:ExecuteResponse/wps:Status/wps:ProcessStarted/@percentCompleted">
-    <xsl:attribute name="percentCompleted">
-      <xsl:value-of select="$value"/>
-    </xsl:attribute>
+  <xsl:template match="/wps:ExecuteResponse/wps:Status/wps:ProcessStarted">
+    <xsl:copy>
+      <xsl:attribute name="percentCompleted">
+	<xsl:value-of select="$value"/>
+      </xsl:attribute>
+      <xsl:value-of select="$message" />
+    </xsl:copy>
   </xsl:template>
 
Index: /trunk/zoo-project/zoo-services/utils/status/service.c
===================================================================
--- /trunk/zoo-project/zoo-services/utils/status/service.c	(revision 439)
+++ /trunk/zoo-project/zoo-services/utils/status/service.c	(revision 440)
@@ -55,7 +55,8 @@
 #endif
   int GetStatus(maps*& conf,maps*& inputs,maps*& outputs){
-    const char *params[2 + 1];
+    const char *params[4 + 1];
     int xmlLoadExtDtdDefaultValue;
     map* tmpMap=NULL,*tmpMmap=NULL, *tmpTmap=NULL;
+
     tmpMap=getMapFromMaps(inputs,"sid","value");
     tmpTmap=getMapFromMaps(conf,"main","tmpPath");
@@ -99,13 +100,35 @@
     doc = xmlParseFile(fileName);
     if(cur!=NULL && doc!=NULL){
-      params[0]="value";
-      params[1]=getStatus(atoi(tmpMap->value));
-      params[2]=NULL;
-      res = xsltApplyStylesheet(cur, doc, params);
-      xmlChar *xmlbuff;
-      int buffersize;
-      xmlDocDumpFormatMemory(res, &xmlbuff, &buffersize, 1);
-      setMapInMaps(outputs,"Result","value",(char*)xmlbuff);
-      xmlFree(xmlbuff);
+      /**
+       * Parse Status to extract Status / Message
+       */
+      char *tmpStr=getStatus(atoi(tmpMap->value));
+      if(tmpStr!=NULL && strncmp(tmpStr,"-1",2)!=0){
+	char *tmpStr1=strdup(tmpStr);
+	char *tmpStr0=strdup(strstr(tmpStr,"|")+1);
+	tmpStr1[strlen(tmpStr1)-strlen(tmpStr0)-1]='\0';
+	char *tmpStrFinal=(char*)malloc((strlen(tmpStr0)+11)*sizeof(char));
+	sprintf(tmpStrFinal,"string(\"%s\")",tmpStr0);
+	params[0]="value";
+	params[1]=tmpStr1;
+	params[2]="message";
+	params[3]=tmpStrFinal;
+	params[4]=NULL;
+	res = xsltApplyStylesheet(cur, doc, params);
+	xmlChar *xmlbuff;
+	int buffersize;
+	xmlDocDumpFormatMemory(res, &xmlbuff, &buffersize, 1);
+	setMapInMaps(outputs,"Result","value",(char*)xmlbuff);
+	xmlFree(xmlbuff);
+	free(tmpStr1);
+	free(tmpStr0);
+	free(tmpStrFinal);
+      }else{
+	xmlChar *xmlbuff;
+	int buffersize;
+	xmlDocDumpFormatMemory(doc, &xmlbuff, &buffersize, 1);
+	setMapInMaps(outputs,"Result","value",(char*)xmlbuff);
+	xmlFree(xmlbuff);
+      }
     }
     else{
@@ -131,4 +154,5 @@
     while(i<100){
       char tmp[4];
+      char message[10];
       sprintf(tmp,"%i",i);
       map* tmpMap=NULL;
@@ -136,5 +160,7 @@
       if(tmpMap!=NULL)
 	fprintf(stderr,"Status %s %s\n",tmpMap->value,tmp);
+      sprintf(message,"Step %d",i);
       setMapInMaps(conf,"lenv","status",tmp);
+      setMapInMaps(conf,"lenv","message",message);
       updateStatus(conf);
 #ifndef WIN32
