Index: /trunk/zoo-project/zoo-kernel/response_print.c
===================================================================
--- /trunk/zoo-project/zoo-kernel/response_print.c	(revision 746)
+++ /trunk/zoo-project/zoo-kernel/response_print.c	(revision 747)
@@ -2244,5 +2244,7 @@
   n = xmlNewNode(ns, BAD_CAST "ExceptionReport");
   map* version=getMapFromMaps(m,"main","rversion");
-  int vid=getVersionId(version->value);
+  int vid=-1;
+  if(version!=NULL)
+    vid=getVersionId(version->value);
   if(vid<0)
     vid=0;
Index: /trunk/zoo-project/zoo-kernel/service_internal_java.c
===================================================================
--- /trunk/zoo-project/zoo-kernel/service_internal_java.c	(revision 746)
+++ /trunk/zoo-project/zoo-kernel/service_internal_java.c	(revision 747)
@@ -101,5 +101,5 @@
   JavaVMOption options[nb];
 #else
-  JavaVMOption options[nb+nbc0+nbc1];
+  JavaVMOption options[nb+nbc0+nbc1+1];
 #endif
   JavaVMInitArgs vm_args;
@@ -121,5 +121,6 @@
   if(javaXMap!=NULL)
     cursorx=javaXMap->content;
-  options[0].optionString = oclasspath;
+  options[0].optionString = zStrdup(oclasspath);
+  options[0].extraInfo=NULL;
 #ifdef WIN32
   start=2;
@@ -131,4 +132,5 @@
     char *tmp=parseJVMXXOption(cursorxx);
     options[start+i].optionString = tmp;
+    options[start+i].extraInfo=NULL;
     free(tmp);
     cursorxx=cursorxx->next;
@@ -137,4 +139,5 @@
     char *tmp=parseJVMXOption(cursorx);
     options[start+i].optionString = tmp;
+    options[start+i].extraInfo=NULL;
     free(tmp);
     cursorx=cursorx->next;
@@ -310,5 +313,5 @@
  */
 char *parseJVMXXOption(map* m){
-  char *res=(char*)malloc((strlen(m->name)+strlen(m->value)+5)*sizeof(char));
+  char *res=(char*)malloc((strlen(m->name)+strlen(m->value)+6)*sizeof(char));
   if(strncasecmp(m->value,"minus",5)==0)
     sprintf(res,"-XX:-%s",m->name);
