Index: tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/editors/ConcordanceEditor.java
===================================================================
--- tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/editors/ConcordanceEditor.java	(revision 2920)
+++ tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/editors/ConcordanceEditor.java	(revision 2921)
@@ -2173,6 +2173,9 @@
 		float W = 1f + queryLabel.getSize().x / (float) queryLabel.getText().length();
 		// System.out.println("W= "+W+" Maxs "+refMax+ " " +leftMax+" " +keywordMax+" "+rightMax);
 		
+		if (sash == null) return; // there was a problem during initialization
+		if (sash.getLayoutData() == null) return; // there was a problem during initialization
+		
 		((FormData) sash.getLayoutData()).left = new FormAttachment(0, 25 + (int) (refMax * W));
 		referenceColumn.setWidth(2 * (int) (refMax * W));
 		getResultArea().layout(true, true);
Index: tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/transcriber/transcriberLoader.groovy
===================================================================
--- tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/transcriber/transcriberLoader.groovy	(revision 2920)
+++ tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/transcriber/transcriberLoader.groovy	(revision 2921)
@@ -61,7 +61,7 @@
 boolean removeInterviewer = false;//if true the transcription of speakers (en1 and enq2) defined in metadatas file will be ignored
 boolean includeComments = false;
 boolean ignoreTranscriberMetadata = false;
-int csvHeaderNumber = 1;
+//int csvHeaderNumber = 1;
 int maxlines = 200;
 
 String userDir = System.getProperty("user.home");
@@ -131,7 +131,7 @@
 }
 File propertyFile = new File(srcDir, "import.properties")//default
 Properties props = new Properties();
-String[] metadatasToKeep;
+//String[] metadatasToKeep;
 if (propertyFile.exists() && propertyFile.canRead()) {
 	FileInputStream input = new FileInputStream(propertyFile);
 	props.load(input);
@@ -141,18 +141,18 @@
 		removeInterviewer = Boolean.parseBoolean(props.get("removeInterviewer").toString());
 	if (props.getProperty("ignoreTranscriberMetadata") != null)
 		ignoreTranscriberMetadata = Boolean.parseBoolean(props.get("ignoreTranscriberMetadata").toString());
-	if (props.getProperty("metadataList") != null)
-		metadatasToKeep = props.get("metadataList").toString().split("|");
-	if (props.getProperty("csvHeaderNumber") != null)
-		csvHeaderNumber = props.get("csvHeaderNumber").toString().split("|");
+//	if (props.getProperty("metadataList") != null)
+//		metadatasToKeep = props.get("metadataList").toString().split("|");
+//	if (props.getProperty("csvHeaderNumber") != null)
+//		csvHeaderNumber = props.get("csvHeaderNumber").toString().split("|");
 	//if (props.getProperty("includeComments") != null)
 	//	includeComments = props.get("includeComments").toString();
 
 	println "import properties: "
 	println " removeInterviewer: "+removeInterviewer
 	println " ignoreTranscriberMetadata: "+ignoreTranscriberMetadata
-	println " metadataToKeep: "+metadatasToKeep
-	println " ignored csvHeaderSize: "+csvHeaderNumber
+//	println " metadataToKeep: "+metadatasToKeep
+//	println " ignored csvHeaderSize: "+csvHeaderNumber
 	//println " includeComments: "+includeComments
 }
 
Index: tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/txt/txtLoader.groovy
===================================================================
--- tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/txt/txtLoader.groovy	(revision 2920)
+++ tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/txt/txtLoader.groovy	(revision 2921)
@@ -35,6 +35,7 @@
 import org.txm.*;
 import org.txm.objects.*;
 import org.txm.core.engines.*;
+import org.txm.utils.ConsoleProgressBar
 import org.txm.utils.i18n.*;
 import org.txm.metadatas.*;
 import org.txm.utils.io.FileCopy;
@@ -107,8 +108,10 @@
 if (metadatas != null) {
 	println "-- INJECTING METADATA - from csv file: "+allMetadataFile
 	println("Injecting metadata: "+metadatas.getHeadersList()+" in texts of directory "+txmDir)
-	for (File infile : txmDir.listFiles()) {
-		print "."
+	def filesToInject = txmDir.listFiles()
+	ConsoleProgressBar cpb = new ConsoleProgressBar(filesToInject.size())
+	for (File infile : filesToInject) {
+		cpb.tick()
 		File outfile = File.createTempFile("temp", ".xml", infile.getParentFile());
 
 		if (!metadatas.injectMetadatasInXml(infile, outfile, "text", null)) {
@@ -121,7 +124,7 @@
 			}
 		}
 	}
-	println ""
+	cpb.done()
 }
 
 
Index: tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/txt/importer.groovy
===================================================================
--- tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/txt/importer.groovy	(revision 2920)
+++ tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/txt/importer.groovy	(revision 2921)
@@ -42,7 +42,6 @@
 import org.txm.scripts.filters.TagSentences.*
 import org.txm.scripts.filters.Tokeniser.*
 
-// TODO: Auto-generated Javadoc
 /**
  * The Class importer.
  */
@@ -57,8 +56,7 @@
 	 * @param basename the basename
 	 * @return true, if successful
 	 */
-	public static boolean run(File srcDir, File binDir, File txmDir, String encoding, List<String> suffixes, String basename, String lang)
-	{
+	public static boolean run(File srcDir, File binDir, File txmDir, String encoding, List<String> suffixes, String basename, String lang) {
 		
 		File stokenizedDir = new File(binDir,"stokenized");
 		stokenizedDir.deleteDir();
@@ -113,12 +111,13 @@
 		}
 
 		println("Create simple XML files ("+srcfiles.size()+" files)")
+		ConsoleProgressBar cpb = new ConsoleProgressBar(srcfiles.size())
 		for (File srcfile : srcfiles) {
 			if (srcfile.length() == 0) {
 				println "Skipping empty file: "+srcfile
 				continue;
 			}
-			print "."
+			cpb.tick()
 			File xmlfile;
 			try {
 				int point = srcfile.getName().indexOf(".");
@@ -217,11 +216,12 @@
 				xmlfile.delete()
 			}
 		}
-		println ""
+		cpb.done()
 
 		println("Tokenizing "+txmDir.listFiles().length+" files")
+		cpb = new ConsoleProgressBar(txmDir.listFiles().length)
 		for (File pfile : txmDir.listFiles()) {
-			print "."
+			cpb.tick()
 			File tfile = new File(tokenizedDir, pfile.getName());
 
 			SimpleTokenizerXml tokenizer = new SimpleTokenizerXml(pfile, tfile, lang);
@@ -231,15 +231,16 @@
 				tfile.delete()
 			}
 		}
-		println ""
+		cpb.done()
 		
 		// Tag sentences
 		List<File> stokenfiles = tokenizedDir.listFiles()
 		File stokenizeDir = new File(tokenizedDir.getParentFile(), "stokenized")
 		stokenizeDir.mkdir();
+		cpb = new ConsoleProgressBar(stokenfiles.size())
 		println("Tagging sentences of "+stokenfiles.size()+" files")
 		for (File f : stokenfiles) {
-			print "."
+			cpb.tick()
 			Sequence S = new Sequence();
 			Filter F1 = new CutHeader();
 			Filter F7 = new TagSentences();
@@ -265,12 +266,13 @@
 			S = F1 = F7 = F11 = null;
 			headerfile.delete();//remove the prepared file to clean
 		}
-		println ""
+		cpb.done()
 
 		//TRANSFORM INTO XML-TEI-TXM
 		println("Building xml-tei-txm ("+stokenizeDir.listFiles().length+" files)")
+		cpb = new ConsoleProgressBar(stokenizeDir.listFiles().length)
 		for (File tfile : stokenizeDir.listFiles()) {
-			print  "."
+			cpb.tick()
 			File xmlfile = new File(txmDir, tfile.getName());
 
 			def correspType = new HashMap<String,String>()
@@ -290,7 +292,7 @@
 				new File(xmlfile.getParent(),xmlfile.getName()).delete()
 			}
 		}
-		println ""
+		cpb.done()
 		
 		files = txmDir.listFiles()
 		if (files == null || files.size() == 0) return false
Index: tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xmltxm/xmltxmLoader.groovy
===================================================================
--- tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xmltxm/xmltxmLoader.groovy	(revision 2920)
+++ tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xmltxm/xmltxmLoader.groovy	(revision 2921)
@@ -197,6 +197,7 @@
 	def second = 0
 
 	println "Paginating text: "
+	ConsoleProgressBar cpb = new ConsoleProgressBar(files.size())
 	for (File txmFile : files) {
 
 		String txtname = txmFile.getName();
@@ -213,7 +214,7 @@
 
 		if (second) { print(", ") }
 		if (second > 0 && (second++ % 5) == 0) println ""
-		print(".");
+		cpb.tick()
 
 		def ed = new pager(txmFile, outdir, txtname, NoSpaceBefore, NoSpaceAfter, wordsPerPage, basename, page_element);
 		Edition edition = new Edition(t);
@@ -226,7 +227,7 @@
 			edition.addPage(""+(++i), wordid);
 		}
 	}
-	println ""
+	cpb.done()
 }
 if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done(); }
 if (MONITOR != null) MONITOR.worked(20, "FINALIZING")
Index: tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xml/importer.groovy
===================================================================
--- tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xml/importer.groovy	(revision 2920)
+++ tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xml/importer.groovy	(revision 2921)
@@ -52,13 +52,13 @@
 class importer {
 
 	/** The validation. */
-	boolean validation;
+	boolean validation
 
 	/** The tokenize. */
-	boolean tokenize;
+	boolean tokenize
 
 	/** The sentence. */
-	boolean sentence = false;
+	boolean sentence = false
 
 	/**
 	 * Do tokenize.
@@ -83,23 +83,23 @@
 	 */
 	public boolean run(File srcDir, File binDir, File txmDir, String basename, String ignoredElements, String lang)
 	{
-		new File(binDir,"tokenized").deleteDir();
-		new File(binDir,"tokenized").mkdir();
+		new File(binDir,"tokenized").deleteDir()
+		new File(binDir,"tokenized").mkdir()
 
-		ArrayList<String> milestones = new ArrayList<String>();//the tags who you want them to stay milestones
+		ArrayList<String> milestones = new ArrayList<String>()//the tags who you want them to stay milestones
 
 		//TEST EACH XML FILE IF VALID
-		List<File> srcfiles = txmDir.listFiles();
+		List<File> srcfiles = txmDir.listFiles()
 		List<File> okfiles = []
 
-		println "Sources cleaning & validation";
-				def files = txmDir.listFiles()
+		println "Sources cleaning & validation"
+		def files = txmDir.listFiles()
 		for (File f : txmDir.listFiles()) { // clean directory
 			String name = f.getName()
 			if (f.isHidden() || !name.toLowerCase().endsWith(".xml")) {
 				if (!f.delete()) {
 					println "WARNING: could not clean $txmDir directory: TXM could not delete $f"
-					return false;
+					return false
 				}
 			}
 		}
@@ -107,40 +107,45 @@
 		files = txmDir.listFiles()
 		if (files == null || files.size() == 0) {
 			println "No XML file (*.xml) to process. Aborting"
-			return false;
+			return false
 		}
 		files = files.sort()
-		for (File f : txmDir.listFiles()) {
-			if (!f.getName().toLowerCase().endsWith(".xml")) continue;
-			
+		ConsoleProgressBar cpb = new ConsoleProgressBar(files.size())
+		for (File f : files) {
+			if (!f.getName().toLowerCase().endsWith(".xml")) {
+				continue
+			}
 			if (!f.isHidden() && f.canRead() && !f.getName().endsWith(".properties") && !f.getName().startsWith("metadata") && !f.isDirectory()) {
-				print "."
+				cpb.tick()
 				if (!ValidateXml.test(f)) {
-					if (stopIfMalformed)
-						return;
-					else
-						continue;
+					if (stopIfMalformed) {
+						return
+					} else {
+						continue
+					}
 				} else {
-					if (!f.getName().equals("import.xml"))
-						okfiles.add(f);
+					if (!f.getName().equals("import.xml")) {
+						okfiles.add(f)
+					}
 				}
 			}
 		}
-		println ""
+		cpb.done()
 
 		okfiles.sort()
 		println "Files to process: "+okfiles
 		if (okfiles.size() == 0) {
 			println "No file. Check if the file extensions are '.xml'"
-			return false;
+			return false
 		}
 		
 		// Fix surrogates
 		File srcDirectory = new File(binDir, "src")
+		srcDirectory.deleteDir()
 		srcDirectory.mkdir()
 		for (File f : okfiles) {
 			File outputFile = new File (srcDirectory, f.getName())
-			CleanFile.removeSurrogateFromXmlFile(f, outputFile);
+			CleanFile.removeSurrogateFromXmlFile(f, outputFile)
 		}
 		okfiles = srcDirectory.listFiles()
 		okfiles.sort()
@@ -150,22 +155,24 @@
 		List<File> tokenfiles;
 		if (tokenize || sentence) {
 			println "Tokenizing (words=$tokenize sentences=$sentence) "+okfiles.size()+" files"
+			ConsoleProgressBar cpb2 = new ConsoleProgressBar(files.size())
 			for (File f : okfiles) {
-				print "."
-				File infile = f;
-				File outfile = new File(binDir, "tokenized/"+f.getName());
+				cpb2.tick()
+				File infile = f
+				File outfile = new File(binDir, "tokenized/"+f.getName())
 				SimpleTokenizerXml tokenizer = new SimpleTokenizerXml(infile, outfile, lang)
-				if (ignoredElements != null && ignoredElements.trim().length() > 0)
+				if (ignoredElements != null && ignoredElements.trim().length() > 0) {
 					tokenizer.setOutSideTextTagsAndKeepContent(ignoredElements)
+				}
 				if (!tokenizer.process()) {
 					println("Failed to process "+f)
 					outfile.delete()
 				}
 			}
 			tokenfiles = new File(binDir, "tokenized").listFiles()
-			println ""
+			cpb2.done()
 		} else {
-			tokenfiles = okfiles;
+			tokenfiles = okfiles
 		}
 
 //		Change XML tag "text" to "textunit"
@@ -180,38 +187,39 @@
 		}
 		//TRANSFORM INTO XML-TEI-TXM
 		println("Building XML-TXM ("+tokenfiles.size()+" files)")
+		cpb = new ConsoleProgressBar(tokenfiles.size())
 		for (File f : tokenfiles) {
 			//ArrayList<String> milestones = new ArrayList<String>();
-			print "."
-			File file = f;
-			String txmfile = f.getName();
+			cpb.tick()
+			File file = f
+			String txmfile = f.getName()
 
 			def correspType = new HashMap<String,String>()
 			def correspRef = new HashMap<String,String>()
 			//il faut lister les id de tous les respStmt
-			def respId = [];
+			def respId = []
 			//fait la correspondance entre le respId et le rapport d'execution de l'outil
-			def applications = new HashMap<String,HashMap<String,String>>();
+			def applications = new HashMap<String,HashMap<String,String>>()
 			//fait la correspondance entre le respId et les attributs type de la propriété ana du w txm
 			//pour construire les ref vers les taxonomies
-			def taxonomiesUtilisees = new HashMap<String,String[]>();
+			def taxonomiesUtilisees = new HashMap<String,String[]>()
 			//associe un id d'item avec sa description et son URI
-			def itemsURI = new HashMap<String,HashMap<String,String>>();
+			def itemsURI = new HashMap<String,HashMap<String,String>>()
 			//informations de respStmt
 			//resps (respId <voir ci-dessus>, [description, person, date])
-			def resps = new HashMap<String,String[]>();
+			def resps = new HashMap<String,String[]>()
 			//lance le traitement
-			def builder = new Xml2Ana(file);
-			builder.setConvertAllAtrtibutes true;
-			builder.setCorrespondances(correspRef, correspType);
+			def builder = new Xml2Ana(file)
+			builder.setConvertAllAtrtibutes true
+			builder.setCorrespondances(correspRef, correspType)
 			builder.setHeaderInfos(respId,resps, applications, taxonomiesUtilisees, itemsURI)
 			//builder.setAddTEIHeader();
 			if (!builder.process(new File(txmDir,txmfile))) {
-				println("Failed to process "+f);
-				new File(txmDir,txmfile).delete();
+				println("Failed to process "+f)
+				new File(txmDir,txmfile).delete()
 			}
 		}
-		println ""
+		cpb.done()
 		okfiles = txmDir.listFiles()
 		
 		return okfiles != null && okfiles.size() > 0;
Index: tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xml/xmlLoader.groovy
===================================================================
--- tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xml/xmlLoader.groovy	(revision 2920)
+++ tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xml/xmlLoader.groovy	(revision 2921)
@@ -25,128 +25,131 @@
 // $LastChangedRevision: 3349 $
 // $LastChangedBy: mdecorde $
 //
-package org.txm.scripts.importer.xml;
+package org.txm.scripts.importer.xml
 
-import javax.xml.stream.XMLStreamReader;
-
-import org.txm.scripts.importer.RemoveTag;
-import org.txm.importer.ApplyXsl2;
-import org.txm.importer.ValidateXml;
-import org.txm.scripts.importer.xml.importer;
-import org.txm.scripts.importer.xml.compiler;
-import org.txm.scripts.importer.xml.pager_old;
-import org.txm.objects.*;
-import org.txm.tokenizer.TokenizerClasses;
+import org.txm.importer.ApplyXsl2
+import org.txm.importer.ValidateXml
+import org.txm.scripts.importer.RemoveTag
+import org.txm.scripts.importer.xml.importer
+import org.txm.scripts.importer.xml.compiler
+import org.txm.scripts.importer.xml.pager_old
+import org.txm.objects.*
+import org.txm.tokenizer.TokenizerClasses
 import org.txm.utils.*
-import org.txm.utils.io.*;
-import org.txm.*;
-import org.txm.core.engines.*;
-import org.txm.importer.scripts.xmltxm.*;
-import org.txm.utils.i18n.*;
-import org.txm.metadatas.*;
-import javax.xml.stream.*;
+import org.txm.utils.io.*
+import org.txm.utils.xml.DomUtils
+import org.txm.*
+import org.txm.core.engines.*
+import org.txm.importer.scripts.xmltxm.*
+import org.txm.utils.i18n.*
+import org.txm.metadatas.*
+import javax.xml.stream.*
 import org.w3c.dom.Element
-import org.txm.utils.xml.DomUtils;
 
-String userDir = System.getProperty("user.home");
 
-def MONITOR;
-Project project;
+String userDir = System.getProperty("user.home")
 
+def MONITOR
+Project project
+
 try {project=projectBinding;MONITOR=monitor} catch (Exception)
 {	}
 if (project == null) { println "no project set. Aborting"; return; }
 
-String corpusname = project.getName();
+String corpusname = project.getName()
 String basename = corpusname
-String rootDir = project.getSrcdir();
+String rootDir = project.getSrcdir()
 String lang = project.getLang()
 String model = lang
 String encoding = project.getEncoding()
 boolean annotate = project.getAnnotate()
-String xsl = project.getFrontXSL();
-def xslParams = project.getXsltParameters();
+String xsl = project.getFrontXSL()
+def xslParams = project.getXsltParameters()
 int wordsPerPage = project.getEditionDefinition("default").getWordsPerPage()
 String page_element = project.getEditionDefinition("default").getPageElement()
 boolean build_edition = project.getEditionDefinition("default").getBuildEdition()
 boolean doTokenizeStep = project.getDoTokenizerStep()
 
-File srcDir = new File(rootDir);
+File srcDir = new File(rootDir)
 File binDir = project.getProjectDirectory()
-binDir.mkdirs();
+binDir.mkdirs()
 if (!binDir.exists()) {
-	println "Could not create binDir "+binDir
+	println "Could not create the result directory: "+binDir
 	return;
 }
 
-File txmDir = new File(binDir, "txm/$corpusname");
-txmDir.deleteDir();
-txmDir.mkdirs();
+File txmDir = new File(binDir, "txm/$corpusname")
+txmDir.deleteDir()
+txmDir.mkdirs()
+new File(binDir, "src").deleteDir()
 
 File propertyFile = new File(rootDir, "import.properties")//default
-Properties props = new Properties();
-String[] metadatasToKeep;
+Properties props = new Properties()
+String[] metadatasToKeep
 
-String textSortAttribute = null;
-boolean normalizeMetadata = false;
-String ignoredElements = null;
-boolean stopIfMalformed = false;
+String textSortAttribute = null
+boolean normalizeMetadata = false
+String ignoredElements = null
+boolean stopIfMalformed = false
 
 println "Trying to read import properties file: "+propertyFile
 if (propertyFile.exists() && propertyFile.canRead()) {
-	InputStreamReader input = new InputStreamReader(new FileInputStream(propertyFile) , "UTF-8");
-	props.load(input);
-	input.close();
-	if(props.getProperty("sortmetadata") != null)
-		textSortAttribute = props.get("sortmetadata").toString();
-	if (props.getProperty("normalizemetadata") != null)
-		normalizeMetadata = Boolean.parseBoolean(props.get("normalizemetadata").toString());
-	if (props.getProperty("ignoredelements") != null)
-		ignoredElements = props.get("ignoredelements").toString();
-	if (props.getProperty("stopifmalformed") != null)
-		stopIfMalformed = Boolean.parseBoolean(props.get("stopifmalformed").toString());
-
-	println "import properties: "
+	InputStreamReader input = new InputStreamReader(new FileInputStream(propertyFile) , "UTF-8")
+	props.load(input)
+	input.close()
+	if (props.getProperty("sortmetadata") != null) {
+		textSortAttribute = props.get("sortmetadata").toString()
+	}
+	if (props.getProperty("normalizemetadata") != null) {
+		normalizeMetadata = Boolean.parseBoolean(props.get("normalizemetadata").toString())
+	}
+	if (props.getProperty("ignoredelements") != null) {
+		ignoredElements = props.get("ignoredelements").toString()
+	}
+	if (props.getProperty("stopifmalformed") != null) {
+		stopIfMalformed = Boolean.parseBoolean(props.get("stopifmalformed").toString())
+	}
+	println "Import properties: "
 	println " sort metadata: "+textSortAttribute
 	println " normalize attributes: "+normalizeMetadata
 	println " ignored elements: "+ignoredElements
 	println " stop if a XML source is malformed: "+stopIfMalformed
 }
 
-File allMetadataFile = Metadatas.findMetadataFile(srcDir);
+File allMetadataFile = Metadatas.findMetadataFile(srcDir)
 
 // Apply XSL
-if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done(); }
-if (MONITOR != null) MONITOR.worked(1, "APPLYING XSL")
+if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done() }
+if (MONITOR != null) { MONITOR.worked(1, "APPLYING XSL") }
 if (xsl != null && xslParams != null && xsl.trim().length() > 0) {
 	new File(binDir, "src").deleteDir() // remove old outputed files if any
 	if (ApplyXsl2.processImportSources(new File(xsl), srcDir, new File(binDir, "src"), xslParams))
 	// return; // error during process
-	srcDir = new File(binDir, "src");
+	srcDir = new File(binDir, "src")
 	println ""
 }
 
 // copy xml+dtd files
 if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done(); }
-List<File> srcfiles = srcDir.listFiles();
-def ignoredFiles = [];
+List<File> srcfiles = srcDir.listFiles()
+def ignoredFiles = []
 if (srcfiles != null) {
 	for (int i = 0 ; i < srcfiles.size() ; i++) {// check XML format, and copy file into the "txm" directory
 		File f = srcfiles.get(i)
 		if (f.isDirectory() || f.isHidden() || f.getName().equals("import.xml") || f.getName().matches("metadata\\.....?") || f.getName().endsWith(".properties")) {
-			srcfiles.remove(i);
-			i--;
-			continue; // don't raise warnings for those files
+			srcfiles.remove(i)
+			i--
+			continue // don't raise warnings for those files
 		}
 		if (f.getName().toLowerCase().endsWith(".xml") && ValidateXml.test(f)) {
-			FileCopy.copy(f, new File(txmDir, f.getName()));
+			FileCopy.copy(f, new File(txmDir, f.getName()))
 		} else {
-			ignoredFiles << f;
+			ignoredFiles << f
 		}
 	}
 } else {
 	println "The $srcDir source directory is empty. Aborting."
-	return;
+	return
 }
 
 if (ignoredFiles.size() > 0) {
@@ -154,7 +157,7 @@
 }
 if (txmDir.listFiles() == null) {
 	println "No txm file to process"
-	return;
+	return
 }
 
 // filtering
@@ -172,16 +175,16 @@
  }*/
 
 //get metadata values from CSV
-Metadatas metadatas; // text metadata
+Metadatas metadatas // text metadata
 
 println "Trying to read metadata from: "+allMetadataFile
-if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done(); }
+if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done() }
 if (allMetadataFile.exists()) {
 	println " Metadata file found: "+allMetadataFile
 	File copy = new File(binDir, allMetadataFile.getName())
 	if (!FileCopy.copy(allMetadataFile, copy)) {
-		println "Error: could not create a copy of metadata file "+allMetadataFile.getAbsoluteFile();
-		return;
+		println "Error: could not create a copy of metadata file "+allMetadataFile.getAbsoluteFile()
+		return
 	}
 	metadatas = new Metadatas(copy, Toolbox.getMetadataEncoding(), Toolbox.getMetadataColumnSeparator(), Toolbox.getMetadataTextSeparator(), 1)
 } else {
@@ -189,30 +192,29 @@
 }
 
 if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done(); }
-if (MONITOR != null) MONITOR.worked(5, "IMPORTER")
+if (MONITOR != null) { MONITOR.worked(5, "IMPORTER") }
 println "-- IMPORTER - Reading source files"
-def imp = new importer();
+def imp = new importer()
 imp.doValidation(true) // change this to not validate xml
 
 imp.doTokenize(doTokenizeStep) // change this, to not tokenize xml
-imp.setStopIfMalformed(stopIfMalformed);
+imp.setStopIfMalformed(stopIfMalformed)
 if (!imp.run( srcDir, binDir, txmDir, basename, ignoredElements, lang)) {
-	println "import process stopped";
-	return;
+	println "import process stopped"
+	return
 }
 
-if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done(); }
-if (MONITOR != null) MONITOR.worked(20, "INJECTING METADATA")
+if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done() }
+if (MONITOR != null) { MONITOR.worked(20, "INJECTING METADATA") }
 if (metadatas != null) {
 	
-	
 	println("-- INJECTING METADATA - "+metadatas.getHeadersList()+" in texts of directory "+new File(binDir,"txm"))
 	
 	def files = txmDir.listFiles()
 	ConsoleProgressBar cpb = new ConsoleProgressBar(files.size())
 	for (File infile : files) {
 		cpb.tick()
-		File outfile = File.createTempFile("temp", ".xml", infile.getParentFile());
+		File outfile = File.createTempFile("temp", ".xml", infile.getParentFile())
 		if (!metadatas.injectMetadatasInXml(infile, outfile, "text", null)) {
 			outfile.delete();
 		} else {
@@ -230,15 +232,15 @@
 	return;
 }
 
-if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done(); }
-if (MONITOR != null) MONITOR.worked(20, "ANNOTATE")
+if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done() }
+if (MONITOR != null) { MONITOR.worked(20, "ANNOTATE") }
 
 boolean annotationSuccess = false;
 if (annotate) {
 	println "-- ANNOTATE - Running NLP tools"
 	def engine = Toolbox.getEngineManager(EngineType.ANNOTATION).getEngine("TreeTagger")
 	if (engine.processDirectory(txmDir, binDir, ["lang":model])) {
-		annotationSuccess = true;
+		annotationSuccess = true
 	}
 }
 
@@ -248,61 +250,61 @@
 def c = new compiler();
 if(debug) c.setDebug();
 //c.setCwbPath("~/TXM/cwb/bin");
-c.setOptions(textSortAttribute, normalizeMetadata);
+c.setOptions(textSortAttribute, normalizeMetadata)
 c.setAnnotationSuccess(annotationSuccess)
-c.setLang(lang);
+c.setLang(lang)
 if (!c.run(project, binDir, txmDir, corpusname, null, srcfiles, metadatas)) {
-	println "import process stopped";
+	println "import process stopped"
 	return;
 }
 
 if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done(); }
 
-new File(binDir,"HTML/$corpusname").deleteDir();
-new File(binDir,"HTML/$corpusname").mkdirs();
+new File(binDir,"HTML/$corpusname").deleteDir()
+new File(binDir,"HTML/$corpusname").mkdirs()
 if (build_edition) {
 
 	println "-- EDITION - Building edition"
-	if (MONITOR != null) MONITOR.worked(25, "EDITION")
+	if (MONITOR != null) { MONITOR.worked(25, "EDITION") }
 	
-	File outdir = new File(binDir,"/HTML/$corpusname/default/");
-	outdir.mkdirs();
-	List<File> filelist = txmDir.listFiles();
-	Collections.sort(filelist);
+	File outdir = new File(binDir,"/HTML/$corpusname/default/")
+	outdir.mkdirs()
+	List<File> filelist = txmDir.listFiles()
+	Collections.sort(filelist)
 	def second = 0
 
 	println "Paginating "+filelist.size()+" texts"
 	ConsoleProgressBar cpb = new ConsoleProgressBar(filelist.size());
 	for (File txmFile : filelist) {
 		cpb.tick()
-		String txtname = txmFile.getName();
-		int i = txtname.lastIndexOf(".");
-		if (i > 0) txtname = txtname.substring(0, i);
+		String txtname = txmFile.getName()
+		int i = txtname.lastIndexOf(".")
+		if (i > 0) { txtname = txtname.substring(0, i) }
 
-		List<String> NoSpaceBefore = LangFormater.getNoSpaceBefore(lang);
-		List<String> NoSpaceAfter = LangFormater.getNoSpaceAfter(lang);
+		List<String> NoSpaceBefore = LangFormater.getNoSpaceBefore(lang)
+		List<String> NoSpaceAfter = LangFormater.getNoSpaceAfter(lang)
 
-		Text t = new Text(project);
-		t.setName(txtname);
+		Text t = new Text(project)
+		t.setName(txtname)
 		t.setSourceFile(txmFile)
 		t.setTXMFile(txmFile)
 
 		def ed = new pager(txmFile, outdir, txtname, NoSpaceBefore, NoSpaceAfter, wordsPerPage, basename, page_element);
-		Edition edition = new Edition(t);
-		edition.setName("default");
-		edition.setIndex(outdir.getAbsolutePath());
+		Edition edition = new Edition(t)
+		edition.setName("default")
+		edition.setIndex(outdir.getAbsolutePath())
 
 		for (i = 0 ; i < ed.getPageFiles().size();) {
-			File f = ed.getPageFiles().get(i);
-			String wordid = "w_0";
-				if (i < ed.getIdx().size()) wordid = ed.getIdx().get(i);
-			edition.addPage(""+(++i), wordid);
+			File f = ed.getPageFiles().get(i)
+			String wordid = "w_0"
+			if (i < ed.getIdx().size()) { wordid = ed.getIdx().get(i) }
+			edition.addPage(""+(++i), wordid)
 		}
 	}
 	cpb.done()
 }
 
-if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done(); }
-if (MONITOR != null) MONITOR.worked(20, "FINALIZING")
+if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done() }
+if (MONITOR != null) { MONITOR.worked(20, "FINALIZING") }
 
-readyToLoad = project.save();
\ No newline at end of file
+readyToLoad = project.save()
\ No newline at end of file
Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Property.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Property.java	(revision 2920)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Property.java	(revision 2921)
@@ -164,7 +164,7 @@
 				}
 			}
 			catch (CqiClientException e) {
-				Log.warning(TXMCoreMessages.bind("** No property {0} found in the {1} corpus: {2}", s, corpus, e));
+				Log.warning(TXMCoreMessages.bind("** Could not find the ''{0}'' word property found in the ''{1}'' corpus: {2}", s, corpus, e));
 				Log.printStackTrace(e);
 			}
 		}
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/OpenWelcomePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/OpenWelcomePage.java	(revision 2920)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/OpenWelcomePage.java	(revision 2921)
@@ -66,10 +66,10 @@
 		// version += "beta";
 		
 		if ("fr".equals(locale)) {
-			return OpenBrowser.openfile(WELCOME + version) != null;
+			return OpenBrowser.openfile(WELCOME + version + "/welcome") != null;
 		}
 		else {
-			return OpenBrowser.openfile(OpenLocalizedWebPage.getValidURL(WELCOME + version + "/" + locale, (WELCOME + version))) != null;
+			return OpenBrowser.openfile(OpenLocalizedWebPage.getValidURL(WELCOME + version + "/" + locale + "/welcome", (WELCOME + version + "/welcome"))) != null;
 		}
 	}
 }
