Avoid real work (here initializiing/setting classpath containers) during static initializers.
I saw deadlocks with involvment of the following stack-fragment:
        at org.eclipse.jdt.core.JavaCore.setClasspathVariable(JavaCore.java:4923)
        at org.eclipse.objectteams.otdt.core.ext.OTVariableInitializer.initialize(OTVariableInitializer.java:62)
        at org.eclipse.jdt.core.JavaCore.getClasspathVariable(JavaCore.java:2858)
        at org.eclipse.jdt.internal.core.JavaModelManager.getResolvedVariablePath(JavaModelManager.java:2411)
        at org.eclipse.jdt.core.JavaCore.getResolvedVariablePath(JavaCore.java:3400)
        at org.eclipse.objectteams.otdt.core.ext.OTDTPlugin.getResolvedVariablePath(OTDTPlugin.java:166)
        at org.eclipse.objectteams.otdt.core.ext.OTREContainer.<clinit>(OTREContainer.java:73)
        at org.eclipse.objectteams.otdt.core.ext.OTDTPlugin.start(OTDTPlugin.java:120)
(initializing BCEL_PATH early is OK, we need the BundleContext and don't perform further computations)
diff --git a/plugins/org.eclipse.objectteams.otdt.debug/src/org/eclipse/objectteams/otdt/debug/OTVMRunnerAdaptor.java b/plugins/org.eclipse.objectteams.otdt.debug/src/org/eclipse/objectteams/otdt/debug/OTVMRunnerAdaptor.java
index b1f97db..edf1b29 100644
--- a/plugins/org.eclipse.objectteams.otdt.debug/src/org/eclipse/objectteams/otdt/debug/OTVMRunnerAdaptor.java
+++ b/plugins/org.eclipse.objectteams.otdt.debug/src/org/eclipse/objectteams/otdt/debug/OTVMRunnerAdaptor.java
@@ -50,11 +50,6 @@
 	private static final String OT_DEBUG_CALLIN_STEPPING_VMARG = "-Dot.debug.callin.stepping";
 	private static final String OT_TEAMCONFIG_VMARG = "-Dot.teamconfig";
 	private static List<String> JPLIS_VMARGS;
-	static {
-		JPLIS_VMARGS = new ArrayList<String>();
-		JPLIS_VMARGS.add("-Dot.otdt");
-		JPLIS_VMARGS.add("-javaagent:" + "\""+OTREContainer.OTRE_AGENT_JAR_PATH.toOSString()+'"'); // support blanks in path
-	}
 
 	private ILaunchConfiguration _launchConfig;
 	private String _mode;
@@ -139,7 +134,7 @@
 		String sep = " ";
 	    StringBuffer result = new StringBuffer(vmArguments);
 	    
-		for (String arg : JPLIS_VMARGS)
+		for (String arg : getJplisVmargs())
 			result.append(sep).append(arg);
 	    
 	    String callinSteppingVMArg = getCallinSteppingVMArg();
@@ -155,6 +150,15 @@
 	    return result.toString();
 	}
 
+	private List<String> getJplisVmargs() {
+		if (JPLIS_VMARGS == null) {
+			JPLIS_VMARGS = new ArrayList<String>();
+			JPLIS_VMARGS.add("-Dot.otdt");
+			JPLIS_VMARGS.add("-javaagent:" + "\""+OTREContainer.getOtreAgentJarPath().toOSString()+'"'); // support blanks in path
+		}
+		return JPLIS_VMARGS;
+	}
+
 	private String getCallinSteppingVMArg() {
 		String value = OTDebugPlugin.getDefault().getCallinSteppingConfig();
 		if (value == null) return null;
@@ -163,7 +167,7 @@
 
 	protected List<String> getOTVMArgs()
 	{
-        return new ArrayList<String>(JPLIS_VMARGS);
+        return new ArrayList<String>(getJplisVmargs());
 	}
 	
     /**