Index: /trunk/zoo-project/zoo-kernel/service_internal.c
===================================================================
--- /trunk/zoo-project/zoo-kernel/service_internal.c	(revision 563)
+++ /trunk/zoo-project/zoo-kernel/service_internal.c	(revision 564)
@@ -2459,4 +2459,9 @@
 void readGeneratedFile(maps* m,map* content,char* filename){
   FILE * file=fopen(filename,"rb");
+  if(file==NULL){
+    fprintf(stderr,"Failed to open file %s for reading purpose.\n",filename);
+    setMapInMaps(m,"lenv","message","Unable to read produced file. Please try again later");
+    return ;
+  }
   fseek(file, 0, SEEK_END);
   long count = ftell(file);
@@ -2464,9 +2469,4 @@
   struct stat file_status; 
   stat(filename, &file_status);
-  if(file==NULL){
-    fprintf(stderr,"Failed to open file %s for reading purpose.\n",filename);
-    setMapInMaps(m,"lenv","message","Unable to read produced file. Please try again later");
-    return ;
-  }
   map* tmpMap1=getMap(content,"value");
   if(tmpMap1==NULL){
Index: /trunk/zoo-project/zoo-kernel/service_internal_otb.c
===================================================================
--- /trunk/zoo-project/zoo-kernel/service_internal_otb.c	(revision 563)
+++ /trunk/zoo-project/zoo-kernel/service_internal_otb.c	(revision 564)
@@ -190,6 +190,10 @@
 			      ext="shp";
 			    else
-			    if(strncasecmp(tmpVal->value,"application/vnd.google-earth.kml+xml",36)==0)
-			      ext="kml";
+			      if(strncasecmp(tmpVal->value,"application/vnd.google-earth.kml+xml",36)==0)
+				ext="kml";
+			      else
+				if(strncasecmp(tmpVal->value,"application/vnd.google-earth.kmz",32)==0)
+				  ext="kmz";
+
 		      }
 		      sprintf(tmp,"%s/%s_%s.%s",tmpPath->value,s->name,tmpSid->value,ext);
