Index: trunk/zoo-project/zoo-kernel/zoo_service_loader.c
===================================================================
--- trunk/zoo-project/zoo-kernel/zoo_service_loader.c	(revision 440)
+++ trunk/zoo-project/zoo-kernel/zoo_service_loader.c	(revision 441)
@@ -1376,5 +1376,13 @@
 #endif
 	    xmlNodePtr cur3=cur2->children;
-	    hInternet.header=NULL;
+	    HINTERNET hInternetP;
+	    hInternetP=InternetOpen(
+#ifndef WIN32
+				   (LPCTSTR)
+#endif
+				   "ZooWPSClient\0",
+				   INTERNET_OPEN_TYPE_PRECONFIG,
+				   NULL,NULL, 0);
+	    hInternetP.header=NULL;
 	    while(cur3){
 	      while(cur3!=NULL && cur3->type!=XML_ELEMENT_NODE)
@@ -1406,6 +1414,7 @@
 		  }
 		}
-		hInternet.header=curl_slist_append(hInternet.header, has);
-		free(has);
+		hInternetP.header=curl_slist_append(hInternetP.header, has);
+		if(has!=NULL)
+		  free(has);
 	      }
 	      else{
@@ -1441,7 +1450,7 @@
 #ifdef POST_DEBUG
 		    fprintf(stderr,"%s %s\n",btmp->value,tmp);
-		    curl_easy_setopt(hInternet.handle, CURLOPT_VERBOSE, 1);
-#endif
-		    res=InternetOpenUrl(hInternet,btmp->value,tmp,strlen(tmp),
+		    curl_easy_setopt(hInternetP.handle, CURLOPT_VERBOSE, 1);
+#endif
+		    res=InternetOpenUrl(hInternetP,btmp->value,tmp,strlen(tmp),
 					INTERNET_FLAG_NO_CACHE_WRITE,0);
 		    char* tmpContent = (char*)malloc((res.nDataLen+1)*sizeof(char));
@@ -1453,6 +1462,6 @@
 				     res.nDataLen, &dwRead);
 		    tmpContent[res.nDataLen]=0;
-		    if(hInternet.header!=NULL)
-		      curl_slist_free_all(hInternet.header);
+		    if(hInternetP.header!=NULL)
+		      curl_slist_free_all(hInternetP.header);
 		    addToMap(tmpmaps->content,"value",tmpContent);
 #ifdef POST_DEBUG
@@ -1493,7 +1502,7 @@
 #ifdef POST_DEBUG
 		      fprintf(stderr,"%s %s\n",btmp->value,tmp);
-		      curl_easy_setopt(hInternet.handle, CURLOPT_VERBOSE, 1);
-#endif
-		      res=InternetOpenUrl(hInternet,btmp->value,tmp,
+		      curl_easy_setopt(hInternetP.handle, CURLOPT_VERBOSE, 1);
+#endif
+		      res=InternetOpenUrl(hInternetP,btmp->value,tmp,
 					  strlen(tmp),
 					  INTERNET_FLAG_NO_CACHE_WRITE,0);
@@ -1506,6 +1515,6 @@
 				       res.nDataLen, &dwRead);
 		      tmpContent[res.nDataLen]=0;
-		      if(hInternet.header!=NULL)
-			curl_slist_free_all(hInternet.header);
+		      if(hInternetP.header!=NULL)
+			curl_slist_free_all(hInternetP.header);
 		      addToMap(tmpmaps->content,"value",tmpContent);
 #ifdef POST_DEBUG
@@ -1517,4 +1526,5 @@
 	      cur3=cur3->next;
 	    }
+	    InternetCloseHandle(hInternetP);
 #ifdef POST_DEBUG
 	    fprintf(stderr,"Header and Body was parsed from Reference \n");
