Index: trunk/zoo-project/zoo-kernel/service_internal_java.c
===================================================================
--- trunk/zoo-project/zoo-kernel/service_internal_java.c	(revision 354)
+++ trunk/zoo-project/zoo-kernel/service_internal_java.c	(revision 355)
@@ -32,20 +32,19 @@
   getcwd(ntmp,1024);
   map* tmp=getMap(request,"metapath");
-  char classpath[2048];
-  char oclasspath[2068];
+  char *classpath;
+  char *oclasspath;
   int res=SERVICE_FAILED;
   char *cclasspath=getenv("CLASSPATH");
   if(tmp!=NULL){
-    if(cclasspath!=NULL)
+    if(cclasspath!=NULL){
+      classpath=(char*) malloc((strlen(ntmp)+strlen(tmp->value)+strlen(cclasspath)+4)*sizeof(char));
+      oclasspath=(char*) malloc((strlen(ntmp)+strlen(tmp->value)+strlen(cclasspath)+22)*sizeof(char));
       sprintf(classpath,"%s/%s/:%s",ntmp,tmp->value,cclasspath);
-    else
+    }
+    else{
+      classpath=(char*) malloc((strlen(ntmp)+strlen(tmp->value)+3)*sizeof(char));
+      oclasspath=(char*) malloc((strlen(ntmp)+strlen(tmp->value)+21)*sizeof(char));
       sprintf(classpath,"%s/%s/",ntmp,tmp->value);
-    sprintf(oclasspath,"-Djava.class.path=%s",classpath);
-  }
-  else{
-    if(cclasspath!=NULL)
-      sprintf(classpath,"%s:%s",ntmp,cclasspath);
-    else
-      sprintf(classpath,"%s",ntmp);
+    }
     sprintf(oclasspath,"-Djava.class.path=%s",classpath);
   }
@@ -54,5 +53,4 @@
   fprintf(stderr,"(%s)\n",oclasspath);
 #endif
-  setenv("CLASSPATH",classpath,1);
 
   JavaVMOption options[1];
