Index: trunk/zoo-kernel/service_conf.l
===================================================================
--- trunk/zoo-kernel/service_conf.l	(revision 213)
+++ trunk/zoo-kernel/service_conf.l	(revision 214)
@@ -41,10 +41,10 @@
 
 attname	[a-zA-Z0-9_\-]+
-attvalue1	[\^\*\+,;@a-zA-Z0-9_\-::.:" "\"\'/\\\(\)]+
+attvalue1	[\^\*\+,;@a-zA-Z0-9_\-::.:" "\"\'/\\\(\)\t\|]+
 
 attvalue		\"[^"]*\"|\'[^']*\'\(\)
 
-whitespace                      [ ]{0,}
-whitesp                      [ ]
+whitespace                      [\t]{0,}|[ ]{0,}
+whitesp                      [\t]|[ ]
 newline                 [\r\n]|[\n]
 newlines                 [\r\n]{1,}|[\n]{1,}
Index: trunk/zoo-kernel/zoo_service_loader.c
===================================================================
--- trunk/zoo-kernel/zoo_service_loader.c	(revision 213)
+++ trunk/zoo-kernel/zoo_service_loader.c	(revision 214)
@@ -511,6 +511,6 @@
       n = printGetCapabilitiesHeader(doc,"",m);
     /**
-     * Strange, here we need to close stdout to ensure that no uneeded 
-     * char will be printed (parser issue ?)
+     * Here we need to close stdout to ensure that not supported chars 
+     * has been found in the zcfg and then printed on stdout
      */
     int saved_stdout = dup(fileno(stdout));
@@ -921,4 +921,18 @@
 	    addToMap(tmpmaps->content,tmpn1,tmpv1+1);
 	  else{
+	    if(strncasecmp(tmpv1+1,"http://",7)!=0 &&
+	       strncasecmp(tmpv1+1,"ftp://",6)!=0){
+	      char emsg[1024];
+	      sprintf(emsg,_("Unable to find a valid protocol to download the remote file %s"),tmpv1+1);
+	      errorException(m,emsg,"InternalError");
+	      freeMaps(&m);
+	      free(m);
+	      free(REQUEST);
+	      free(SERVICE_URL);
+	      InternetCloseHandle(hInternet);
+	      freeService(&s1);
+	      free(s1);
+	      return 0;
+	    }
 #ifdef DEBUG
 	    fprintf(stderr,"REQUIRE TO DOWNLOAD A FILE FROM A SERVER : url(%s)\n",tmpv1+1);
