Index: branches/branch-1.2/zoo-kernel/main.cfg
===================================================================
--- branches/branch-1.2/zoo-kernel/main.cfg	(revision 217)
+++ branches/branch-1.2/zoo-kernel/main.cfg	(revision 268)
@@ -6,4 +6,5 @@
 tmpPath=/YourFullTmpPathHere/
 tmpUrl = ../TmpPathRelativeToServerAdress/
+dataPath = /YouFullDataPathHere/
 
 [identification]
@@ -20,5 +21,5 @@
 positionName=Developer
 role=Dev
-adressDeliveryPoint=1280, avenue des Platanes
+addressDeliveryPoint=1280, avenue des Platanes
 addressCity=Lattes
 addressAdministrativeArea=False
Index: branches/branch-1.2/zoo-kernel/main_conf_read.y
===================================================================
--- branches/branch-1.2/zoo-kernel/main_conf_read.y	(revision 217)
+++ branches/branch-1.2/zoo-kernel/main_conf_read.y	(revision 268)
@@ -47,9 +47,5 @@
 /* le type des lval des jetons et des elements non terminaux bison */
 //======================================================
-%union 
-{
-   char * s;
-}
-%union { char* chaine; char* key;char* val;}
+%union { char* s;char* chaine; char* key;char* val;}
 //======================================================
 
Index: branches/branch-1.2/zoo-kernel/nmake.opt
===================================================================
--- branches/branch-1.2/zoo-kernel/nmake.opt	(revision 217)
+++ branches/branch-1.2/zoo-kernel/nmake.opt	(revision 268)
@@ -9,6 +9,5 @@
 CPP=cl /TP $(CFLAGS)
 
-CFLAGS=-DUSE_PYTHON /EHa /nologo /MT /W3 /EHsc /O2 /D_CRT_SECURE_NO_WARNINGS /DWIN32 $(CJFLAGS) -I./ -I..\thirds\dirent-win32 -I$(PYTHON_CPATH)\include -I$(GEODIR)/include -ILIBINTL_CPATH\include -I$(TPATH)\include -DLINUX_FREE_ISSUE #-DDEBUG #-DDEBUG_SERVICE_CONF
+CFLAGS=-DUSE_PYTHON /EHa /nologo /MT /W3 /EHsc /O2 /D_CRT_SECURE_NO_WARNINGS /DWIN32 $(CJFLAGS) -I./ -I..\thirds\dirent-win32 -I..\thirds\include -I$(PYTHON_CPATH)\include -I$(GEODIR)/include -ILIBINTL_CPATH\include -I$(TPATH)\include -DLINUX_FREE_ISSUE #-DDEBUG #-DDEBUG_SERVICE_CONF
 
-LDFLAGS=$(GEODIR)/lib/libfcgi.lib $(GEODIR)/lib/libcurl_im
-p.lib  $(GEODIR)/apps/Python25/libs/python25.lib $(GEODIR)/lib/libxml2.lib ../thirds/cgic206/libcgic.lib $(GEODIR)/lib/gdal_i.lib $(TOOLS)\..\lib\libeay32.dll.a $(TOOLS)\..\lib\libcrypto.a $(TOOLS)\..\lib\libssl32.dll.a $(TOOLS)\..\lib\libintl.lib /machine:i386 
+LDFLAGS=$(GEODIR)/lib/libfcgi.lib $(GEODIR)/lib/libcurl_imp.lib  $(GEODIR)/apps/Python25/libs/python25.lib $(GEODIR)/lib/libxml2.lib ../thirds/cgic206/libcgic.lib $(GEODIR)/lib/gdal_i.lib $(TOOLS)\..\lib\libeay32.dll.a $(TOOLS)\..\lib\libcrypto.a $(TOOLS)\..\lib\libssl32.dll.a $(TOOLS)\..\lib\libintl.lib /machine:i386 
Index: branches/branch-1.2/zoo-kernel/service.h
===================================================================
--- branches/branch-1.2/zoo-kernel/service.h	(revision 217)
+++ branches/branch-1.2/zoo-kernel/service.h	(revision 268)
@@ -124,5 +124,6 @@
     map* tmp=t;
     while(tmp!=NULL){
-      fprintf(file,"%s = %s\n",t->name,t->value);
+      fprintf(stderr,"%s = %s\n",tmp->name,tmp->value);
+      fprintf(file,"%s = %s\n",tmp->name,tmp->value);
       tmp=tmp->next;
     }
@@ -138,10 +139,13 @@
   }
 
-  static void dumpMapsToFile(maps* m,FILE* file){
+  static void dumpMapsToFile(maps* m,char* file_path){
+    FILE* file=fopen(file_path,"w");
     maps* tmp=m;
     if(tmp!=NULL){
       fprintf(file,"[%s]\n",tmp->name);
       dumpMapToFile(tmp->content,file);
-    }
+      fflush(file);
+    }
+    fclose(file);
   }
 
@@ -549,6 +553,7 @@
 	map* tmpV=getMap(res->content,"value");
 	free(tmpV->value);
-	tmpV->value=(char*)malloc(atoi(tmp->value)*sizeof(char));
+	tmpV->value=(char*)malloc((atoi(tmp->value)+1)*sizeof(char));
 	memmove(tmpV->value,tmpSized,atoi(tmp->value)*sizeof(char));
+	tmpV->value[atoi(tmp->value)]=0;
 	free(tmpSized);
       }
Index: branches/branch-1.2/zoo-kernel/service_conf.l
===================================================================
--- branches/branch-1.2/zoo-kernel/service_conf.l	(revision 217)
+++ branches/branch-1.2/zoo-kernel/service_conf.l	(revision 268)
@@ -41,5 +41,5 @@
 
 attname	[a-zA-Z0-9_\-]+
-attvalue1	[\^\*\+,;@a-zA-Z0-9_\-::.:" "\"\'/\\\(\)\t\|]+
+attvalue1	[\^\*\+,;@a-zA-Z0-9_\-::.:" "\"\'/\\\(\)\t\|\$\&>]+
 
 attvalue		\"[^"]*\"|\'[^']*\'\(\)
Index: branches/branch-1.2/zoo-kernel/service_conf.y
===================================================================
--- branches/branch-1.2/zoo-kernel/service_conf.y	(revision 217)
+++ branches/branch-1.2/zoo-kernel/service_conf.y	(revision 268)
@@ -356,5 +356,22 @@
 //======================================================
 EmptyElemTag
- : INFCAR ID Attributeetoile SLASH SUPCAR	{}
+ : INFCAR ID Attributeetoile SLASH SUPCAR	{
+   if(strncasecmp($2,"Default",7)==0){
+     wait_defaults=false;
+     current_data=previous_data;
+     if(current_element->defaults==NULL){
+       current_element->defaults=(iotype*)malloc(IOTYPE_SIZE);
+       current_element->defaults->content=NULL;
+     }
+     addMapToMap(&current_element->defaults->content,current_content);
+     freeMap(&current_content);
+     free(current_content);
+     current_element->defaults->next=NULL;
+     wait_defaults=false;
+     current_content=NULL;
+     current_element->supported=NULL;
+     current_element->next=NULL;
+   }
+ }
  ;
 
Index: branches/branch-1.2/zoo-kernel/service_internal.c
===================================================================
--- branches/branch-1.2/zoo-kernel/service_internal.c	(revision 217)
+++ branches/branch-1.2/zoo-kernel/service_internal.c	(revision 268)
@@ -173,4 +173,5 @@
 }
 #else
+
 void unhandleStatus(maps *conf){
   int shmid,i;
@@ -209,5 +210,5 @@
     if ((shmid = shmget(key, SHMSZ, IPC_CREAT | 0666)) < 0) {
 #ifdef DEBUG
-      fprintf(stderr,"shmget failed to update value\n");
+      fprintf(stderr,"shmget failed to create new Shared memory segment\n");
 #endif
     }else{
@@ -220,6 +221,8 @@
 	tmpMap=getMapFromMaps(conf,"lenv","status");
 	s1=shm;
-	for(s=tmpMap->value;s!=NULL;s++)
+	for(s=tmpMap->value;*s!=NULL && *s!=0;s++){
 	  *s1++=*s;
+	}
+	*s1=NULL;
 	shmdt((void *)shm);
       }
@@ -1722,7 +1725,5 @@
       else
 	sprintf(session_file_path,"%s/sess_%s.cfg",tmpPath->value,strstr(_tmp->value,"=")+1);
-      FILE* file=fopen(session_file_path,"w");
-      dumpMapsToFile(tmpSess,file);
-      fclose(file);
+      dumpMapsToFile(tmpSess,session_file_path);
     }
   }
Index: branches/branch-1.2/zoo-kernel/service_internal.h
===================================================================
--- branches/branch-1.2/zoo-kernel/service_internal.h	(revision 217)
+++ branches/branch-1.2/zoo-kernel/service_internal.h	(revision 268)
@@ -57,4 +57,6 @@
 #include <openssl/bio.h>
 #include <openssl/buffer.h>
+
+#include "cgic.h"
 
 extern   int getServiceFromFile(const char*,service**);
Index: branches/branch-1.2/zoo-kernel/zoo_service_loader.c
===================================================================
--- branches/branch-1.2/zoo-kernel/zoo_service_loader.c	(revision 217)
+++ branches/branch-1.2/zoo-kernel/zoo_service_loader.c	(revision 268)
@@ -675,5 +675,6 @@
 #endif
 	while ((dp = readdir(dirp)) != NULL)
-	  if(strcmp(dp->d_name,buff)==0){
+	  if((strcasecmp("all.zcfg",buff)==0 && strstr(dp->d_name,".zcfg")>0)
+	     || strcasecmp(dp->d_name,buff)==0){
 	    memset(buff1,0,1024);
 	    snprintf(buff1,1024,"%s/%s",conf_dir,dp->d_name);
@@ -764,5 +765,5 @@
     return 0;
   }
-  //close(saved_stdout);
+  close(saved_stdout);
 
 #ifdef DEBUG
@@ -1812,9 +1813,14 @@
     if(tmpPath==NULL)
       tmpPath=getMapFromMaps(m,"main","tmpPath");
-    sprintf(session_file_path,"%s/sess_%s.cfg",tmpPath->value,strstr(cgiCookie,"=")+1);
+    char *tmp1=strtok(cgiCookie,";");
+    if(tmp1!=NULL)
+      sprintf(session_file_path,"%s/sess_%s.cfg",tmpPath->value,strstr(tmp1,"=")+1);
+    else
+      sprintf(session_file_path,"%s/sess_%s.cfg",tmpPath->value,strstr(cgiCookie,"=")+1);
+
     maps *tmpSess=(maps*)calloc(1,MAPS_SIZE);
     struct stat file_status;
     int istat = stat(session_file_path, &file_status);
-    if(istat==0){
+    if(istat==0 && file_status.st_size>0){
       conf_read(session_file_path,tmpSess);
       dumpMaps(tmpSess);
