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 2278)
+++ tmp/org.txm.groovy.core/src/java/org/txm/groovy/core/GroovyScriptedImportEngine.java	(revision 2279)
@@ -119,9 +119,9 @@
 			}
 
 			ExecTimer.start();
-			Log.info(NLS.bind(GroovyMessages.startingTheP0GroovyImportScript, mainScript.getName())); //$NON-NLS-1$
+			//Log.info(NLS.bind(GroovyMessages.startingTheP0GroovyImportScript, mainScript.getName())); //$NON-NLS-1$
+			Log.info(NLS.bind(GroovyMessages.startingTheP0importModule, project.getImportModuleName()));
 			gse.run(mainScript.toURI().toURL().toString(), binding); // run the groovy import script
-			Log.fine("\nEnd of Groovy import script: " + ExecTimer.stop()); //$NON-NLS-1$
 			monitor.worked(90);
 
 			TokenizerClasses.reset(); // restore default tokenizer classes
@@ -134,9 +134,15 @@
 					
 					project.saveParameters(true);
 					
+					if (monitor != null) monitor.setTaskName(TXMCoreMessages.common_done);
+					
 //					Log.info(GroovyMessages.restartingToolboxSearchengines);
 //					Toolbox.getEngineManager(EngineType.SEARCH).restartEngines();
-//					Log.info(TXMCoreMessages.common_done);
+					if (project.getDoUpdate()) {
+						Log.info(NLS.bind(TXMCoreMessages.corpusImportDoneInP0, ExecTimer.stop()));
+					} else {
+						Log.info(NLS.bind(TXMCoreMessages.corpusUpdateDoneInP0, ExecTimer.stop()));
+					}
 					
 				} else {
 					Log.fine(GroovyMessages.errorImportNotCorrectlyEndedSeeConsoleMessages);
Index: tmp/org.txm.groovy.core/src/java/org/txm/groovy/core/messages/messages.properties
===================================================================
--- tmp/org.txm.groovy.core/src/java/org/txm/groovy/core/messages/messages.properties	(revision 2278)
+++ tmp/org.txm.groovy.core/src/java/org/txm/groovy/core/messages/messages.properties	(revision 2279)
@@ -1,4 +1,5 @@
 restartingToolboxSearchengines=Restarting search engine...
-startingTheP0GroovyImportScript=Starting the {0} Groovy import script.
+startingTheP0GroovyImportScript=Starting the {0} Groovy import script...
+startingTheP0importModule=Starting the  "{0}" import module...
 errorImportNotCorrectlyEndedSeeConsoleMessages=Error: import not correctly ended. See previous messages.
 errorTreeTaggerAnnotationEngineIsNotReady=** Error: TreeTagger annotation engine is not ready please check TXM > Advance > NLP > TreeTagger preferences. Aborting.
\ No newline at end of file
Index: tmp/org.txm.groovy.core/src/java/org/txm/groovy/core/messages/messages_fr.properties
===================================================================
--- tmp/org.txm.groovy.core/src/java/org/txm/groovy/core/messages/messages_fr.properties	(revision 2278)
+++ tmp/org.txm.groovy.core/src/java/org/txm/groovy/core/messages/messages_fr.properties	(revision 2279)
@@ -1,4 +1,5 @@
 restartingToolboxSearchengines=Redémarrage des moteurs de recherche...
-startingTheP0GroovyImportScript=Démarrage du script d'import Groovy {0}.
+startingTheP0GroovyImportScript=Démarrage du script d'import Groovy {0}...
+startingTheP0importModule=Démarrage du module d'import "{0}"...
 errorImportNotCorrectlyEndedSeeConsoleMessages=** Erreur: l'import ne s'est pas terminé correctement. Voir les messages précédent.
 errorTreeTaggerAnnotationEngineIsNotReady=** Erreur : l'annotation treetagger n'est pas possible. Veuillez vérifier les préférences de la page TXM > Avancé > TAL > TreeTagger. Abandon.
\ No newline at end of file
Index: tmp/org.txm.groovy.core/src/java/org/txm/groovy/core/messages/GroovyMessages.java
===================================================================
--- tmp/org.txm.groovy.core/src/java/org/txm/groovy/core/messages/GroovyMessages.java	(revision 2278)
+++ tmp/org.txm.groovy.core/src/java/org/txm/groovy/core/messages/GroovyMessages.java	(revision 2279)
@@ -11,6 +11,8 @@
 	public static String startingTheP0GroovyImportScript;
 	public static String errorImportNotCorrectlyEndedSeeConsoleMessages;
 	public static String errorTreeTaggerAnnotationEngineIsNotReady;
+
+	public static String startingTheP0importModule;
 	
 	static {
 		// initialize resource bundle
Index: tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xtz/XTZDefaultPagerStep.groovy
===================================================================
--- tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xtz/XTZDefaultPagerStep.groovy	(revision 2278)
+++ tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xtz/XTZDefaultPagerStep.groovy	(revision 2279)
@@ -202,24 +202,24 @@
 	private boolean createNextOutput() {
 		wordcount = 0;
 		try {
-			def tags = closeMultiWriter();
+			def tags = closeMultiWriter()
 			
 			outfile = new File(outdir, txtname+"_"+(++pagecount)+".html")
-			pages.add(outfile);
+			pages.add(outfile)
 			firstWord = true; // waiting for next word
 
-			pagedWriter = new StaxStackWriter(outfile, "UTF-8");
+			pagedWriter = new StaxStackWriter(outfile, "UTF-8")
 
 			//pagedWriter.writeStartDocument()
 			pagedWriter.writeDTD("<!DOCTYPE html>")
 			pagedWriter.writeCharacters("\n")
-			pagedWriter.writeStartElement("html");
+			pagedWriter.writeStartElement("html")
 			pagedWriter.writeCharacters("\n")
-			pagedWriter.writeEmptyElement("meta", ["http-equiv":"Content-Type", "content":"text/html","charset":"UTF-8"]);
+			pagedWriter.writeEmptyElement("meta", ["http-equiv":"Content-Type", "content":"text/html","charset":"UTF-8"])
 			for (String css : cssList) {
-				pagedWriter.writeEmptyElement("link", ["rel":"stylesheet", "type":"text/css","href":"$css"]);
+				pagedWriter.writeEmptyElement("link", ["rel":"stylesheet", "type":"text/css","href":"$css"])
 			}
-			pagedWriter.writeStartElement("head");
+			pagedWriter.writeStartElement("head")
 			pagedWriter.writeStartElement("title")
 			pagedWriter.writeCharacters(basename.toUpperCase()+" Edition - Page "+pagecount)
 			pagedWriter.writeEndElement(); // </title>
@@ -228,10 +228,10 @@
 			pagedWriter.writeStartElement("body") //<body>
 			pagedWriter.writeStartElement("div", ["class": "txmeditionpage"]) //<div>
 //			println "OPENING: $tags"
-			pagedWriter.writeStartElements(tags);
+			pagedWriter.writeStartElements(tags)
 			return true;
 		} catch (Exception e) {
-			System.out.println(e.getLocalizedMessage());
+			System.out.println(e.getLocalizedMessage())
 			e.printStackTrace()
 			return false;
 		}
@@ -245,9 +245,9 @@
 	 */
 	private boolean createOutput() {
 		try {
-			return createNextOutput();
+			return createNextOutput()
 		} catch (Exception e) {
-			System.out.println(e.getLocalizedMessage());
+			System.out.println(e.getLocalizedMessage())
 			return false;
 		}
 	}
@@ -304,7 +304,7 @@
 				rend = "";
 				switch (event) {
 					case XMLStreamConstants.START_ELEMENT:
-						localname = parser.getLocalName();
+						localname = parser.getLocalName()
 						if (outOfTextElements.contains(localname)) {
 							currentOutOfTextElements << localname
 							writeOutOfTextToEditText = true;
@@ -313,9 +313,9 @@
 						}
 
 						if (localname == paginationElement) {
-							createNextOutput();
+							createNextOutput()
 							wordcount=0;
-							pagedWriter.write("\n");
+							pagedWriter.write("\n")
 							if (getAttributeValue(parser, null,"n") != null) {
 								pagedWriter.writeElement("p", ["class":"txmeditionpb", "align":"center"], getAttributeValue(parser, null,"n"))
 							}
@@ -331,35 +331,35 @@
 									attributes[parser.getAttributeLocalName(i)] = parser.getAttributeValue(i).toString()
 								}
 
-								pagedWriter.write("\n");
+								pagedWriter.write("\n")
 								pagedWriter.writeStartElement("p")
-								pagedWriter.writeAttribute("class", rend);
+								pagedWriter.writeAttribute("class", rend)
 								if (attributes.containsKey("id")) {
 									pagedWriter.writeElement("h3", attributes["id"])
 								}
 
-								pagedWriter.writeStartElement("table");
+								pagedWriter.writeStartElement("table")
 								for (String k : attributes.keySet()) {
 									if (k == "id") continue;
 									if (k == "rend") continue;
 
-									pagedWriter.writeStartElement("tr");
-									pagedWriter.writeElement("td", k);
-									pagedWriter.writeElement("td", attributes[k]);
-									pagedWriter.writeEndElement(); //tr
+									pagedWriter.writeStartElement("tr")
+									pagedWriter.writeElement("td", k)
+									pagedWriter.writeElement("td", attributes[k])
+									pagedWriter.writeEndElement() //tr
 								}
 								pagedWriter.writeEndElement() // table
 								pagedWriter.writeEndElement() // p
-								pagedWriter.writeCharacters("\n");
+								pagedWriter.writeCharacters("\n")
 								break;
 							case "ref":
 								pagedWriter.writeStartElement("a")
-								pagedWriter.writeAttribute("href", getAttributeValue(parser, null, "target"));
-								pagedWriter.writeAttribute("target", "_blank");
-								pagedWriter.writeAttribute("class", rend);
+								pagedWriter.writeAttribute("href", getAttributeValue(parser, null, "target"))
+								pagedWriter.writeAttribute("target", "_blank")
+								pagedWriter.writeAttribute("class", rend)
 								break;
 							case "head":
-								pagedWriter.write("\n");
+								pagedWriter.write("\n")
 								pagedWriter.writeStartElement("h2", ["class":rend])
 								break;
 							case "graphic":
@@ -383,7 +383,7 @@
 								pagedWriter.writeStartElement("td", ["class":rend])
 								break;
 							case "list":
-								String type = getAttributeValue(parser, null,"type");
+								String type = getAttributeValue(parser, null,"type")
 								if ("unordered" == type) {
 									pagedWriter.writeStartElement("ul", ["class":rend])
 								} else {
@@ -409,9 +409,23 @@
 								break;
 							case "p":
 							//case "lg":
-								pagedWriter.write("\n");
+								pagedWriter.write("\n")
 								pagedWriter.writeStartElement("p", ["class":rend])
 								break;
+							case "sp":
+								pagedWriter.writeStartElement("p", ["class":"turn"])
+								pagedWriter.writeStartElement("span")
+								pagedWriter.writeAttribute("class", "spk")
+								pagedWriter.writeCharacters(parser.getAttributeValue(null,"speaker")+": ")
+								pagedWriter.writeEndElement() // span@class=spk
+								break;
+							case "u":
+								//pagedWriter.writeStartElement("p", ["class":"u"])
+								pagedWriter.writeStartElement("span")
+								pagedWriter.writeAttribute("class", "sync")
+								pagedWriter.writeCharacters(parser.getAttributeValue(null,"time"))
+								//pagedWriter.writeEndElement(); // span@class=spk
+								break;
 							case "div":
 							case "div1":
 							case "div2":
@@ -443,9 +457,9 @@
 								interpvalue+=" "+getAttributeValue(parser, null, "type").substring(1)+":"
 								break;
 							case "form":
-								wordvalue="";
-								interpvalue ="";
-								flagform=true;
+								wordvalue=""
+								interpvalue =""
+								flagform=true
 								break;
 							default:
 								if (noteElements.contains(localname)) {
@@ -466,10 +480,14 @@
 						switch (localname) {
 							case "text":
 								break;
+							case "u":
+								pagedWriter.writeEmptyElement("br")
+								break;
 							case "p":
+							case "sp":
 							//case "lg":
 								pagedWriter.writeEndElement() // </p>
-								pagedWriter.write("\n");
+								pagedWriter.write("\n")
 								break;
 							case "div":
 							case "div1":
@@ -482,31 +500,31 @@
 								break;
 							case "head":
 								pagedWriter.writeEndElement() // </h2>
-								pagedWriter.write("\n");
+								pagedWriter.write("\n")
 								break;
 							case "list":
-								pagedWriter.writeEndElement(); // ul or ol
-								pagedWriter.write("\n");
+								pagedWriter.writeEndElement() // ul or ol
+								pagedWriter.write("\n")
 								break
 							case "item":
-								pagedWriter.writeEndElement(); // li
-								pagedWriter.write("\n");
+								pagedWriter.writeEndElement() // li
+								pagedWriter.write("\n")
 								break;
 							case "hi":
-								pagedWriter.writeEndElement(); // b
+								pagedWriter.writeEndElement() // b
 								break;
 							case "emph":
-								pagedWriter.writeEndElement(); // i
+								pagedWriter.writeEndElement() // i
 								break;
 							case "table":
-								pagedWriter.writeEndElement(); // table
+								pagedWriter.writeEndElement() // table
 								pagedWriter.write("\n");
 								break;
 							case "row":
-								pagedWriter.writeEndElement(); // tr
+								pagedWriter.writeEndElement() // tr
 								break;
 							case "cell":
-								pagedWriter.writeEndElement(); // td
+								pagedWriter.writeEndElement() // td
 								break;
 							case "ref":
 								pagedWriter.writeEndElement() // </a>
@@ -519,25 +537,26 @@
 								break;
 							case wordTag:
 								int l = lastword.length();
-								String endOfLastWord = "";
-								if (l > 0)
-									endOfLastWord = lastword.subSequence(l-1, l);
-
-								if (interpvalue != null)
-									interpvalue = interpvalue;
-
+								String endOfLastWord = ""
+								if (l > 0) {
+									endOfLastWord = lastword.subSequence(l-1, l)
+								}
+								
+								if (interpvalue != null) {
+									interpvalue = interpvalue
+								}
 								if (NoSpaceBefore.contains(wordvalue) ||
 								NoSpaceAfter.contains(lastword) ||
 								wordvalue.startsWith("-") ||
 								NoSpaceAfter.contains(endOfLastWord)) {
-									pagedWriter.writeStartElement("span", ["title":interpvalue, "id":wordid]);
+									pagedWriter.writeStartElement("span", ["title":interpvalue, "id":wordid])
 								} else {
-									pagedWriter.writeCharacters("\n");
-									pagedWriter.writeStartElement("span", ["title":interpvalue, "id":wordid]);
+									pagedWriter.writeCharacters("\n")
+									pagedWriter.writeStartElement("span", ["title":interpvalue, "id":wordid])
 								}
 
-								pagedWriter.writeCharacters(wordvalue);
-								pagedWriter.writeEndElement();
+								pagedWriter.writeCharacters(wordvalue)
+								pagedWriter.writeEndElement()
 								//pagedWriter.writeComment("\n")
 								lastword=wordvalue;
 								break;
@@ -561,13 +580,14 @@
 						break;
 					case XMLStreamConstants.CHARACTERS:
 						if (flagform && parser.getText().length() > 0) {
-							wordvalue+=(parser.getText());
-							if (flagNote == parser.getText().length() > 0)
-								noteContent += parser.getText().replace("\n", " ");
+							wordvalue+=(parser.getText())
+							if (flagNote == parser.getText().length() > 0) {
+								noteContent += parser.getText().replace("\n", " ")
+							}
 						} else	if (flaginterp && parser.getText().length() > 0) {
-							interpvalue+=(parser.getText());
+							interpvalue+=(parser.getText())
 						} else if (flagNote == parser.getText().length() > 0) {
-							noteContent += parser.getText().replace("\n", " ");
+							noteContent += parser.getText().replace("\n", " ")
 						} else if (writeOutOfTextToEditText) {
 							pagedWriter.writeCharacters(parser.getText())
 						}
