Index: trunk/zoo-kernel/service_conf.y
===================================================================
--- trunk/zoo-kernel/service_conf.y	(revision 57)
+++ trunk/zoo-kernel/service_conf.y	(revision 58)
@@ -297,6 +297,4 @@
 	      if(wait_defaults==true){
 		defaultsc++;
-		/*freeMap(&current_content);
-		  current_content=NULL;*/
 	      }
 	      current_data=5;
Index: trunk/zoo-kernel/service_internal.c
===================================================================
--- trunk/zoo-kernel/service_internal.c	(revision 57)
+++ trunk/zoo-kernel/service_internal.c	(revision 58)
@@ -406,5 +406,5 @@
 		int j;
 		for(j=0;j<2;j++)
-		  if(strlen(tmp2->name)==strlen(tmpPhone[j]) && strncasecmp(tmp2->name,tmpPhone[j],strlen(tmp2->name))==0){
+		  if(strcasecmp(tmp2->name,tmpPhone[j])==0){
 		    char *toto=NULL;
 		    char *toto1=tmp2->name;
@@ -419,5 +419,5 @@
 		  int j;
 		  for(j=0;j<6;j++)
-		    if(strlen(tmp2->name)==strlen(tmpAddress[j]) && strncasecmp(tmp2->name,tmpAddress[j],strlen(tmp2->name))==0){
+		    if(strcasecmp(tmp2->name,tmpAddress[j])==0){
 		      char *toto=NULL;
 		      char *toto1=tmp2->name;
Index: trunk/zoo-kernel/service_internal_python.c
===================================================================
--- trunk/zoo-kernel/service_internal_python.c	(revision 57)
+++ trunk/zoo-kernel/service_internal_python.c	(revision 58)
@@ -201,12 +201,15 @@
   PyObject* res=PyDict_New( );
   map* tmp=t;
+  map* size=getMap(tmp,"size");
+  dumpMap(t);
   while(tmp!=NULL){
-    /*if(strcasecmp(tmp->name,"value")==0){
-      map* ttmp=getMap(t,"size");
-      if(ttmp!=NULL)
-	if(PyDict_SetItem(res,PyString_FromString(tmp->name),PyString_FromStringAndSize(tmp->value,(Py_ssize_t) atoi(ttmp->value)))<0){
+    fprintf(stderr,"%s => %s\n"),tmp->name,tmp->value;
+    if(strcasecmp(tmp->name,"value")==0){
+      if(size!=NULL){
+	if(PyDict_SetItem(res,PyString_FromString(tmp->name),PyString_FromStringAndSize(tmp->value,(Py_ssize_t) atoi(size->value)))<0){
 	  fprintf(stderr,"Unable to parse params...");
 	  exit(1);
 	}
+      }
       else
 	if(PyDict_SetItem(res,PyString_FromString(tmp->name),PyString_FromString(tmp->value))<0){
@@ -215,5 +218,5 @@
 	}
     } 
-    else*/
+    else
       if(PyDict_SetItem(res,PyString_FromString(tmp->name),PyString_FromString(tmp->value))<0){
 	fprintf(stderr,"Unable to parse params...");
Index: trunk/zoo-kernel/zoo_service_loader.c
===================================================================
--- trunk/zoo-kernel/zoo_service_loader.c	(revision 57)
+++ trunk/zoo-kernel/zoo_service_loader.c	(revision 58)
@@ -953,6 +953,19 @@
 		InternetReadFile(res, (LPVOID)tmpContent,res.nDataLen, &dwRead);
 		map* tmpMap=getMap(tmpmaps->content,"value");
-		if(tmpMap!=NULL)
-		  tmpMap->value=strdup(tmpContent);
+		if(tmpMap!=NULL){
+		  tmpMap->value=(char*)malloc((res.nDataLen+1)*sizeof(char));
+		  memmove(tmpMap->value,tmpContent,(res.nDataLen)*sizeof(char));
+		  tmpMap->value[res.nDataLen]=0;
+		  fprintf(stderr,"%d = %d ?\n",res.nDataLen/sizeof(char),strlen(tmpContent));
+		  if(strlen(tmpContent)!=res.nDataLen/sizeof(char)){
+		    char tmp[256];
+		    sprintf(tmp,"%d",res.nDataLen);
+		    addToMap(tmpmaps->content,"size",tmp);
+		  }
+		  /*FILE* fd=fopen("/tmp/test.png","w");
+		  fwrite(tmpContent,1,(res.nDataLen)*sizeof(char),fd);
+		  fclose(fd);
+		  dumpMap(tmpMap);*/
+		}
 		free(tmpContent);
 	      }
