Index: /trunk/zoo-kernel/zoo_service_loader.c
===================================================================
--- /trunk/zoo-kernel/zoo_service_loader.c	(revision 20)
+++ /trunk/zoo-kernel/zoo_service_loader.c	(revision 21)
@@ -752,7 +752,10 @@
 #endif
 	xmlNodePtr cur2=cur->children;
-	while(cur2){
-	  while(cur2->type!=XML_ELEMENT_NODE)
+	while(cur2!=NULL){
+	  while(cur2!=NULL && cur2->type!=XML_ELEMENT_NODE)
 	    cur2=cur2->next;
+	  if(cur2==NULL)
+	    break;
+	  
 	  /**
 	   * Indentifier
@@ -1011,7 +1014,11 @@
 #endif
 	    xmlNodePtr cur4=cur2->children;
-	    while(cur4){
-	      while(cur4->type!=XML_ELEMENT_NODE)
+	    while(cur4!=NULL){
+	      while(cur4!=NULL && cur4->type!=XML_ELEMENT_NODE)
 		cur4=cur4->next;
+
+	      if(cur4==NULL){
+		break;
+	      }
 
 	      if(xmlStrcasecmp(cur4->name, BAD_CAST "LiteralData")==0){
@@ -1090,10 +1097,8 @@
 	dumpMaps(request_input_real_format);
 #endif
-	tmpmaps=tmpmaps->next;
-	      
+	freeMaps(&tmpmaps);
+	free(tmpmaps);
+	tmpmaps=NULL;
       }
-#ifdef DEBUG
-      dumpMaps(tmpmaps); 
-#endif
     }
 #ifdef DEBUG
