I have an application which has the following information flow Java C ---> Java Program 1 ---> Java program 1.1 Program ----> Program ---> Java Program 2 ---> Java Program 2.1 The application starts with a java program invoking the C program through JNI. The Inovked C program thereby Invokes some other java classes (Program 1 and Program 2) which invokes another java class(Program 1.1 & 2.1). I have been caching the JVM so as to prevent the creation of multiple JVMs. I could manage to make the calls from java-c and c-java, but whenever there are multiple invocations from c to java, the system hangs after the first few calls. I would be grateful to all, who can help me get out of this situation. Cheers sai.