Index: trunk/zoo-project/zoo-services/utils/status/Makefile
===================================================================
--- trunk/zoo-project/zoo-services/utils/status/Makefile	(revision 384)
+++ 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 384)
+++ 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 384)
+++ 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
