Index: /trunk/zoo-project/zoo-kernel/zoo_service_loader.c
===================================================================
--- /trunk/zoo-project/zoo-kernel/zoo_service_loader.c	(revision 487)
+++ /trunk/zoo-project/zoo-kernel/zoo_service_loader.c	(revision 488)
@@ -216,5 +216,4 @@
 
       if(prefix!=NULL){
-	free(prefix);
 	prefix=NULL;
       }
@@ -227,14 +226,14 @@
       if(prefix!=NULL){
 	setMapInMaps(m,"lenv",tmp1,prefix);
-	char *cprefix=zStrdup(prefix);
 	char levels1[17];
 	sprintf(levels1,"%d",level+1);
 	setMapInMaps(m,"lenv","level",levels1);
-	res=recursReaddirF(m,n,tmp,cprefix,saved_stdout,level+1,func);
+	res=recursReaddirF(m,n,tmp,prefix,saved_stdout,level+1,func);
 	sprintf(levels1,"%d",level);
 	setMapInMaps(m,"lenv","level",levels1);
 	free(prefix);
 	prefix=NULL;
-      }
+      }else
+	res=-1;
       free(tmp);
       if(res<0){
@@ -243,5 +242,4 @@
     }
     else{
-      char* tmp0=strdup(dp->d_name);
       if(dp->d_name[0]!='.' && strstr(dp->d_name,".zcfg")!=0){
 	int t;
@@ -790,4 +788,6 @@
   if(request_inputs==NULL || r_inputs==NULL){ 
     errorException(m, _("Parameter <request> was not specified"),"MissingParameterValue","request");
+    freeMap(&request_inputs);
+    free(request_inputs);
     freeMaps(&m);
     free(m);
