Index: tmp/org.txm.groovy.core/src/java/org/txm/groovy/core/GroovyScriptedImportEngine.java
===================================================================
--- tmp/org.txm.groovy.core/src/java/org/txm/groovy/core/GroovyScriptedImportEngine.java	(revision 2352)
+++ tmp/org.txm.groovy.core/src/java/org/txm/groovy/core/GroovyScriptedImportEngine.java	(revision 2353)
@@ -29,6 +29,7 @@
 import org.txm.utils.logger.Log;
 
 import groovy.lang.Binding;
+import groovy.lang.Script;
 
 public class GroovyScriptedImportEngine extends ScriptedImportEngine {
 
@@ -119,9 +120,10 @@
 			}
 
 			ExecTimer.start();
-			//Log.info(NLS.bind(GroovyMessages.startingTheP0GroovyImportScript, mainScript.getName())); //$NON-NLS-1$
+			Log.info(NLS.bind("Compiling {0} import module...", project.getImportModuleName()));
+			Script s = gse.createScript(mainScript.toURI().toURL().toString(), binding);
 			Log.info(NLS.bind(GroovyMessages.startingTheP0importModule, project.getImportModuleName()));
-			gse.run(mainScript.toURI().toURL().toString(), binding); // run the groovy import script
+			s.run(); // run the groovy import script
 			monitor.worked(90);
 
 			TokenizerClasses.reset(); // restore default tokenizer classes
Index: tmp/org.txm.groovy.core/src/java/org/txm/groovy/core/GSERunner.java
===================================================================
--- tmp/org.txm.groovy.core/src/java/org/txm/groovy/core/GSERunner.java	(revision 2352)
+++ tmp/org.txm.groovy.core/src/java/org/txm/groovy/core/GSERunner.java	(revision 2353)
@@ -5,6 +5,7 @@
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.net.URLConnection;
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -35,11 +36,11 @@
  *
  */
 public class GSERunner extends GroovyScriptEngine {
-
+	
 	protected GSERunner(String[] urls) throws IOException {
 		super(urls, getTXMClassLoader());
 	}
-
+	
 	protected static GSERunner defaultGSE;
 	protected static File defaultScriptRootDir;
 	
@@ -59,20 +60,20 @@
 		File rootDir = new File(Toolbox.getTxmHomePath(), "scripts/groovy/");
 		// check if script root dir was changed
 		if (defaultScriptRootDir != null && defaultScriptRootDir.equals(rootDir) && defaultGSE != null) {
-//			try {
-//				defaultGSE.getGroovyClassLoader().addURL(rootDir.toURI().toURL());
-//			} catch (MalformedURLException e) {
-//				// TODO Auto-generated catch block
-//				e.printStackTrace();
-//			}
+			//			try {
+			//				defaultGSE.getGroovyClassLoader().addURL(rootDir.toURI().toURL());
+			//			} catch (MalformedURLException e) {
+			//				// TODO Auto-generated catch block
+			//				e.printStackTrace();
+			//			}
 			return defaultGSE;
 		}
-
+		
 		String[] roots = new String[] { 
 				rootDir.getAbsolutePath()+"/user/", //$NON-NLS-1$
 				//rootDir.getAbsolutePath()+"/system/", //$NON-NLS-1$
 		}; 
-
+		
 		try {
 			defaultScriptRootDir = rootDir;
 			Log.fine("GSE roots: "+Arrays.toString(roots));
@@ -81,7 +82,7 @@
 			e.printStackTrace();
 			return null;
 		}
-
+		
 		ImportCustomizer imports = new ImportCustomizer();
 		imports.addStarImports("org.txm.rcp.utils", 
 				"org.txm.utils", 
@@ -147,14 +148,14 @@
 		HashSet<ClassLoader> loaders = new HashSet<ClassLoader>();
 		BundleContext bundleContext = InternalPlatform.getDefault().getBundleContext();
 		Bundle[] bundles = bundleContext.getBundles();
-//		java.util.Arrays.sort(bundles, new Comparator<Bundle>() {
-//
-//			@Override
-//			public int compare(Bundle o1, Bundle o2) {
-//				if (o1.getSymbolicName().startsWith("org.txm")) return 1;
-//				return -1;
-//			}
-//		});
+		//		java.util.Arrays.sort(bundles, new Comparator<Bundle>() {
+		//
+		//			@Override
+		//			public int compare(Bundle o1, Bundle o2) {
+		//				if (o1.getSymbolicName().startsWith("org.txm")) return 1;
+		//				return -1;
+		//			}
+		//		});
 		HashSet<String> defaultPlugins = new HashSet<String>();
 		//getDependancies("org.txm.rcp", defaultPlugins);
 		
@@ -175,12 +176,12 @@
 				//System.out.println("GSERunner.createGSERunner(): NO  class loader: " + b.getSymbolicName());
 			}
 		}
-
+		
 		Log.fine("Initializing TXMClassLoader with " + loaders.size() + " bundles.");
 		//for (ClassLoader l : loaders) System.out.println(l);
 		return new TXMClassLoader(loaders);
 	}
-
+	
 	/**
 	 * 
 	 * Simplify the call a Groovy script within a Groovy script and allow to send named and typed arguments
@@ -211,7 +212,7 @@
 	public Object run(Class clazz, Map args) throws ResourceException, ScriptException {
 		return run(clazz.getCanonicalName().replace(".", "/")+".groovy", new Binding(args));
 	}
-
+	
 	/**
 	 * Convenience method exactly the same as calling
 	 * run(clazz, ["args":args])
@@ -243,7 +244,7 @@
 		
 		return run(clazz.getCanonicalName().replace(".", "/")+".groovy", new Binding(arrangedMap));
 	}
-
+	
 	/**
 	 * Convenience method exactly the same as calling
 	 * run(clazz, ["args":[:]])
@@ -260,4 +261,23 @@
 		arrangedMap.put("args", new HashMap<String, Object>());
 		return run(clazz.getCanonicalName().replace(".", "/")+".groovy", new Binding(arrangedMap));
 	}
+	
+	////TODO ScriptCacheEntry is a private class...
+//	public boolean needToRecompile(String scriptName) throws ResourceException, ScriptException {
+//		
+//		URLConnection conn = this.getResourceConnection(scriptName);
+//		String path = conn.getURL().toExternalForm();
+//		ScriptCacheEntry entry = null;
+//		Class clazz = null;
+//		if (entry != null) clazz = entry.scriptClass;
+//		try {
+//			return isSourceNewer(entry);
+//				
+//			}
+//			catch(Exception e) {
+//				
+//			}
+//			
+//		}
+//	}
 }
\ No newline at end of file
