Index: tmp/org.txm.core/.classpath
===================================================================
--- tmp/org.txm.core/.classpath	(revision 288)
+++ tmp/org.txm.core/.classpath	(revision 289)
@@ -6,7 +6,6 @@
 	<classpathentry exported="true" kind="lib" path="lib/antlr-2.7.7.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/asm-analysis-2.2.3.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/asm-tree-2.2.3.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/colt-1.2.0.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/concurrent-1.3.4.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/dom4j-1.6.1.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/forms-1.0.7.jar"/>
@@ -18,8 +17,6 @@
 	<classpathentry exported="true" kind="lib" path="lib/looks-2.0.1.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/macSpecific.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/quaqua.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/REngine.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/RserveEngine.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/rtfCleaner.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/swing-layout-1.0.3.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/juniversalchardet-1.0.3.jar"/>
Index: tmp/org.txm.core/META-INF/MANIFEST.MF
===================================================================
--- tmp/org.txm.core/META-INF/MANIFEST.MF	(revision 288)
+++ tmp/org.txm.core/META-INF/MANIFEST.MF	(revision 289)
@@ -1,6 +1,6 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-Name: Toolbox
+Bundle-Name: TXM Core Toolbox
 Bundle-SymbolicName: org.txm.core;singleton:=true
 Bundle-Version: 0.7.0.qualifier
 Bundle-Activator: org.txm.toolbox.Activator
@@ -10,7 +10,7 @@
  org.txm.lexicon.core;bundle-version="1.0.0",
  org.eclipse.core.net,
  org.eclipse.osgi,
- groovy-all;bundle-version="1.0.0",
+ org.txm.libs.groovy-all;bundle-version="1.0.0",
  org.eclipse.persistence.jpa;bundle-version="2.6.0",
  javax.persistence;bundle-version="2.1.0",
  org.eclipse.persistence.jpa.jpql;bundle-version="2.6.0",
@@ -30,26 +30,6 @@
  antlr.debug,
  antlr.debug.misc,
  antlr.preprocessor,
- cern.clhep,
- cern.colt,
- cern.colt.bitvector,
- cern.colt.buffer,
- cern.colt.function,
- cern.colt.list,
- cern.colt.list.adapter,
- cern.colt.map,
- cern.colt.matrix,
- cern.colt.matrix.bench,
- cern.colt.matrix.doublealgo,
- cern.colt.matrix.impl,
- cern.colt.matrix.linalg,
- cern.colt.matrix.objectalgo,
- cern.jet.math,
- cern.jet.random,
- cern.jet.random.engine,
- cern.jet.random.sampling,
- cern.jet.stat,
- cern.jet.stat.quantile,
  ch.randelshofer.quaqua,
  ch.randelshofer.quaqua.border,
  ch.randelshofer.quaqua.color,
@@ -91,7 +71,6 @@
  com.jgoodies.looks.plastic,
  com.jgoodies.looks.plastic.theme,
  com.jgoodies.looks.windows,
- corejava,
  filters.BuildXmlLiturgie,
  filters.Concatenator,
  filters.CutHeader,
@@ -110,9 +89,6 @@
  filters.Tokeniser,
  filters.WordInternalElement,
  filters.eliminateNAttributes,
- hep.aida,
- hep.aida.bin,
- hep.aida.ref,
  jline,
  junit.extensions,
  junit.framework,
@@ -264,9 +240,6 @@
  org.postgresql.translation,
  org.postgresql.util,
  org.postgresql.xa,
- org.rosuda.REngine,
- org.rosuda.REngine.Rserve,
- org.rosuda.REngine.Rserve.protocol,
  org.sqlite,
  org.sqlite.core,
  org.sqlite.date,
Index: tmp/org.txm.core/src/java/org/txm/core/results/ITXMResult.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/results/ITXMResult.java	(revision 288)
+++ tmp/org.txm.core/src/java/org/txm/core/results/ITXMResult.java	(revision 289)
@@ -50,20 +50,44 @@
 	 */
 	public boolean removeResult(int index);
 	
+	/**
+	 * Removes the result from its parent.
+	 * @return
+	 */
+	public boolean removeFromParent();
 	
 	/**
-	 * Gets the children results.
+	 * Gets all the children results.
 	 * @return
 	 */
 	public ArrayList<ITXMResult> getResults();
 	
+	/**
+	 * Gets the children results.
+	 * @return
+	 */
+	public ArrayList<ITXMResult> getResults(boolean onlyVisible);
 	
 	/**
+	 * Checks if the result must be displayed.  
+	 * @return
+	 */
+	public boolean isVisible();
+	
+	/**
+	 * Sets the result visibility state.
+	 * @param visible
+	 * @return
+	 */
+	public void setVisible(boolean visible);
+	
+	
+	/**
 	 * Gets the children results specified by their class.
 	 * @param type
 	 * @return
 	 */
-	public ArrayList<ITXMResult> getResults(Class type);
+	public ArrayList<ITXMResult> getResults(Class type, boolean onlyVisible);
 	
 	/**
 	 * Gets the children of all the branch in a flat list.
@@ -81,10 +105,6 @@
 	 */
 	public ArrayList<ITXMResult> getSiblings(Class type);
 
-	/**
-	 * Removes the parent.
-	 */
-	public void removeParent();
 
 	/**
 	 * Sets the parent.
Index: tmp/org.txm.core/src/java/org/txm/core/results/TXMResult.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/results/TXMResult.java	(revision 288)
+++ tmp/org.txm.core/src/java/org/txm/core/results/TXMResult.java	(revision 289)
@@ -35,6 +35,10 @@
 	 */
 	protected ArrayList<ITXMResult> children;
 	
+	/**
+	 * The visibility state.
+	 */
+	protected boolean visible;
 	
 
 	/**
@@ -51,6 +55,7 @@
 	 */
 	public TXMResult(ITXMResult parent) {
 		this.weight = 0;
+		this.visible = true;
 		if(parent != null)	{
 			parent.addResult(this);
 		}
@@ -59,16 +64,12 @@
 	
 
 
-	/**
-	 * Deletes the object from its parent, also deletes the children.
-	 * The <code>TXMResult.clean()</code> methods of this result and children results are applied before the deletion.
-	 * @return
-	 */
+	@Override
 	synchronized public boolean delete()	{
 
 		try {
 			//FIXME: debug
-			System.err.println("TXMResult.delete()");
+			//System.err.println("TXMResult.delete()");
 
 			
 			// remove children and clean resources
@@ -85,53 +86,50 @@
 			return true;
 		}
 		catch(Exception e) {
-			e.printStackTrace();
 		}
 		return false;
 	}
 	
-	/**
-	 * Adds a child result to this result.
-	 * If the child already exists it will not be added.
-	 * @param child
-	 * @return
-	 */
+
+	@Override
 	synchronized public boolean addResult(ITXMResult child)	{
-		child.setParent(this);
-		if(!this.children.contains(child))	{
-			//FIXME: Debug
-			//System.err.println("TXMResult.addResult(); adding child " + child + " to parent " + this);
-			return this.children.add(child);	
+		try {
+			//remove from current parent if exists 
+			child.removeFromParent();
+			
+			child.setParent(this);
+			if(!this.children.contains(child))	{
+				//FIXME: Debug
+				//System.err.println("TXMResult.addResult(); adding child " + child + " to parent " + this);
+				return this.children.add(child);	
+			}
 		}
+		catch(Exception e) {
+		}
 		return false;
 	}
 
 	
-	/**
-	 * Adds a child result to this result.
-	 * @param index
-	 * @param child
-	 * @return
-	 */
+	@Override
 	synchronized public boolean addResult(int index, ITXMResult child)	{
 		try {
-			child.setParent(this);
-			this.children.add(index, child);
-			return true;
+			if(!this.children.contains(child))	{
+				child.setParent(this);
+				//FIXME: Debug
+				//System.err.println("TXMResult.addResult(); adding child " + child + " to parent " + this);
+				this.children.add(index, child);
+				return true;
+			}
 		}
 		catch(Exception e) {
 		}
 		return false;
 	}
 	
-	/**
-	 * Removes the specified child result. 
-	 * @param child
-	 * @return <code>true if the child has been removed, otherwise <code>false</code>
-	 */
+	@Override
 	synchronized public boolean removeResult(ITXMResult child)	{
 		try {
-			child.removeParent();
+			child.setParent(null);
 			return this.children.remove(child);
 		}
 		catch(Exception e) {
@@ -139,12 +137,8 @@
 		return false;
 	}
 	
-	/**
-	 * Removes the child result specified by its index.
-	 * @param index
-	 * @return <code>true if the child has been removed, otherwise <code>false</code>
-	 */
-	public boolean removeResult(int index)	{
+	@Override
+	synchronized public boolean removeResult(int index)	{
 		try {
 			return this.removeResult(this.children.get(index));
 		}
@@ -152,32 +146,41 @@
 		}
 		return false;
 	}
+
+	@Override
+	synchronized public boolean removeFromParent()	{
+		try {
+			return this.parent.removeResult(this);
+		}
+		catch(Exception e) {
+		}
+		return false;
+	}
 	
-	
-	/**
-	 * Gets the children results.
-	 * @return
-	 */
-	public ArrayList<ITXMResult> getResults()	{
+	@Override
+	synchronized public ArrayList<ITXMResult> getResults()	{
 		return this.children;
 	}
 	
+
+	@Override
+	synchronized public ArrayList<ITXMResult> getResults(boolean onlyVisible)	{
+		return this.getResults(null, onlyVisible);
+	}
+
 	
-	/**
-	 * Gets the children results specified by their class.
-	 * @param type
-	 * @return
-	 */
-	public ArrayList<ITXMResult> getResults(Class type)	{
-		return TXMResult.getNodes(this.children, type);
+
+	@Override
+	synchronized public ArrayList<ITXMResult> getResults(Class type, boolean onlyVisible)	{
+		return TXMResult.getNodes(this.children, type, onlyVisible);
 	}
 	
-	
+
 	/**
 	 * Gets the children of all the branch in a flat list.
 	 * @return
 	 */
-	protected ArrayList<ITXMResult> getDeepResults(ITXMResult parent, ArrayList<ITXMResult> results)	{
+	synchronized protected ArrayList<ITXMResult> getDeepResults(ITXMResult parent, ArrayList<ITXMResult> results)	{
 		//FIXME: need to prove this method
 		System.err.println("TXMResult2.getDeepResults(ITXMResult parent, ArrayList<ITXMResult> results): NEED TO VALIDATE THIS METHOD");
 		for(int i = 0; i < parent.getResults().size(); i++) {
@@ -186,11 +189,8 @@
 		return results; 
 	}
 	
-	/**
-	 * Gets the children of all the branch in a flat list.
-	 * @return
-	 */
-	public ArrayList<ITXMResult> getDeepResults()	{
+	@Override
+	synchronized public ArrayList<ITXMResult> getDeepResults()	{
 		//FIXME: need to prove this method
 		System.err.println("TXMResult2.getDeepResults(): NEED TO VALIDATE THIS METHOD");
 		return this.getDeepResults(this, new ArrayList<ITXMResult>());
@@ -199,14 +199,14 @@
 
 	
 	/**
-	 * Filters the nodes specified by their class.
+	 * Filters the nodes specified by their class and their visibility state.
 	 * @param type
 	 * @return
 	 */
-	public static ArrayList<ITXMResult> getNodes(ArrayList<ITXMResult> srcNodes, Class type)	{
+	public static ArrayList<ITXMResult> getNodes(ArrayList<ITXMResult> srcNodes, Class type, boolean onlyVisible)	{
 		ArrayList<ITXMResult> nodes = new ArrayList<ITXMResult>();
 		for(int i = 0; i < srcNodes.size(); i++) {
-			if(srcNodes.get(i).getClass().equals(type))	{
+			if((type == null || srcNodes.get(i).getClass().equals(type)) && (onlyVisible == false || srcNodes.get(i).isVisible()))	{
 				nodes.add(srcNodes.get(i));
 			}
 		}
@@ -215,10 +215,8 @@
 	
 	
 	
-	/**
-	 * Gets the sibling nodes of this node result.
-	 */
-	public ArrayList<ITXMResult> getSiblings()	{
+	@Override
+	synchronized public ArrayList<ITXMResult> getSiblings()	{
 		ArrayList<ITXMResult> sibling = new ArrayList<ITXMResult>();
 		if(this.parent != null)	{
 			sibling.addAll(this.parent.getResults());
@@ -231,65 +229,51 @@
 	/**
 	 * Gets the sibling nodes of this node result, specified by their class.
 	 */
-	public ArrayList<ITXMResult> getSiblings(Class type)	{
+	synchronized public ArrayList<ITXMResult> getSiblings(Class type)	{
 		ArrayList<ITXMResult> sibling = new ArrayList<ITXMResult>();
 		if(this.parent != null)	{
-			sibling.addAll(TXMResult.getNodes(this.parent.getResults(), type));
+			sibling.addAll(TXMResult.getNodes(this.parent.getResults(), type, true));
 			sibling.remove(this);
 		}
 		return sibling;
 	}
 
 	
+	@Override
+	public boolean isVisible()	{
+		return this.visible;
+	}
 	
-	/**
-	 * Removes the parent.
-	 */
-	public void removeParent() {
-		this.parent = null;
+	@Override
+	public void setVisible(boolean visible)	{
+		this.visible = visible;
 	}
+	
+	
 
-	/**
-	 * Sets the parent.
-	 * @param parent
-	 */
+	@Override
 	public void setParent(ITXMResult parent)	{
 		this.parent = parent;
 	}
 	
 	
-	/**
-	 * Gets the parent.
-	 * @return the parent
-	 */
+	@Override
 	public ITXMResult getParent() {
 		return parent;
 	}
 	
 	
-	/**
-	 * Gets the name of the result.
-	 * @return
-	 */
+	@Override
 	public abstract String getName();
 	
-	/**
-	 * Gets the simple name of the result.
-	 * @return
-	 */
+	@Override
 	public abstract String getSimpleName();
 	
-	/**
-	 * Gets some details about how the result has been computed (eg. additional parameters, etc.).
-	 * @return
-	 */
+	@Override
 	public abstract String getDetails();
 	
-	/**
-	 * Gets a string representing the result and that can be used as a file name.
-	 * @return
-	 */
 	//FIXME: to discuss and/or to move in export layer
+	@Override
 	public String getValidFileName()	{
 		try {
 			return this.getName().replaceAll("[^a-zA-Z0-9\\._-]+", "_");
@@ -299,10 +283,7 @@
 		return "";
 	}
 	
-	/**
-	 * Gets a string representing the concatenation of the simple names of the branch of this result.
-	 * @return
-	 */
+	@Override
 	synchronized public String getFullPathSimpleName()	{
 
 		// fill the branch
@@ -328,26 +309,20 @@
 	
 	
 	
-	@Override
-	public String toString() {
-		StringBuilder b = new StringBuilder(super.toString());
-		b.append(": " + this.getName()); //$NON-NLS-1$
-		return b.toString();
-	}
+//	@Override
+//	public String toString() {
+//		StringBuilder b = new StringBuilder(super.toString());
+//		b.append(": " + this.getName()); //$NON-NLS-1$
+//		return b.toString();
+//	}
 
 
-	/**
-	 * Gets the weight of the node. Essentially used for sorting purpose.
-	 * @return the weight
-	 */
+	@Override
 	public int getWeight() {
 		return weight;
 	}
 
-	/**
-	 * Cleans and free some resources if needed.
-	 * This methods is applied when calling <code>TXMResult.delete()</code>. 
-	 */
+	@Override
 	public abstract void clean();
 	
 	
Index: tmp/org.txm.core/src/java/org/txm/core/messages/TXMCoreMessages.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/messages/TXMCoreMessages.java	(revision 288)
+++ tmp/org.txm.core/src/java/org/txm/core/messages/TXMCoreMessages.java	(revision 289)
@@ -1,6 +1,7 @@
 package org.txm.core.messages;
 
 import org.eclipse.osgi.util.NLS;
+import org.txm.utils.messages.Utf8NLS;
 
 /**
  * Toolbox core messages.
@@ -160,8 +161,6 @@
 	public static String LexicographicKeywordComparator_0;
 	public static String LexicographicLeftContextComparator_0;
 	public static String LexicographicRightContextComparator_0;
-	public static String Lexicon_0;
-	public static String Lexicon_3;
 	public static String MATRIX_ADDED_TO_WORKSPACE;
 	public static String MainCorpus_0;
 	public static String MainCorpus_1;
@@ -357,9 +356,6 @@
 	public static String ValidateXml_1;
 	public static String ValidateXml_2;
 	public static String ValidateXml_3;
-	public static String Index_0;
-	public static String Index_1;
-	public static String Index_7;
 	public static String WORKSPACE_PURGED;
 	public static String Workspace_0;
 	public static String Workspace_1;
Index: tmp/org.txm.core/src/java/org/txm/core/messages/messages_fr.properties
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/messages/messages_fr.properties	(revision 288)
+++ tmp/org.txm.core/src/java/org/txm/core/messages/messages_fr.properties	(revision 289)
@@ -160,10 +160,6 @@
 
 INT_VECTOR_ADDED_TO_WORKSPACE = Le vecteur "{1}" ({0,number,integer} valeurs numériques "entières") a été transmis au Moteur Statistique.
 
-Index_0 = ** Erreur lors du calcul du lexique : \n
-Index_1 = console : 
-Index_7 = ** Echec de l'exportation du Lexique : 
-
 InternalView_3 = \  Information des structures :
 InternalView_6 = InternalView: erreur lors de la récupération des valeurs des propriétés de structure
 InternalView_7 = \  No d'informations sur les structures
@@ -178,9 +174,6 @@
 
 LexicographicRightContextComparator_0 = Contexte droit
 
-Lexicon_0 = Le tableau des formes et des fréquences doivent avoir la même longueur.
-Lexicon_3 = Lexique :
-
 MATRIX_ADDED_TO_WORKSPACE = La matrice "{2}" ({0,number,integer} lignes et {1,number,integer} colonnes) a été transmise au Moteur Statistique.
 
 MainCorpus_0 = \ n'est pas un identifiant de corpus CQP valide. Il doit être en majuscule.
Index: tmp/org.txm.core/src/java/org/txm/core/messages/messages.properties
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/messages/messages.properties	(revision 288)
+++ tmp/org.txm.core/src/java/org/txm/core/messages/messages.properties	(revision 289)
@@ -36,10 +36,12 @@
 Concordance_15 = Keyword
 Concordance_16 = RightContext
 Concordance_17 = Reference
+Concordance_18 = 
 Concordance_19 = Context
 Concordance_2  = undefined
 Concordance_3  = \ results retrieved in 
 Concordance_4  = Failed to remove QueryResult from CQP: 
+Concordance_5  = 
 Concordance_6  = Retrieving 
 Concordance_7  = \ results
 Concordance_8  = Failed to get texts limits: 
@@ -162,10 +164,6 @@
 
 INT_VECTOR_ADDED_TO_WORKSPACE = Vector "{1}" ({0,number,integer} "int") transmitted to Statistics Engine.
 
-Index_0 = ** Error while computing lexicon:\n 
-Index_1 = Console : 
-Index_7 = ** Failed to export Lexicon : 
-
 InternalView_3 = \  Structure informations: 
 InternalView_6 = InternalView: failed to retrieve struct properties values: 
 InternalView_7 = \  No structure informations
@@ -180,9 +178,6 @@
 
 LexicographicRightContextComparator_0 = Right context
 
-Lexicon_0 = Forms and frequencies tables must be of the same length.
-Lexicon_3 = Lexicon : 
-
 MATRIX_ADDED_TO_WORKSPACE = Matrix "{2}" ({0,number,integer} rows and {1,number,integer} columns) transmitted to Statistics Engine.
 
 MainCorpus_0 = \ is not a valid CQP ID for a corpus. It must be in uppercase characters.
Index: tmp/org.txm.core/src/java/org/txm/searchengine/cqp/corpus/Corpus.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/searchengine/cqp/corpus/Corpus.java	(revision 288)
+++ tmp/org.txm.core/src/java/org/txm/searchengine/cqp/corpus/Corpus.java	(revision 289)
@@ -898,18 +898,20 @@
 	 */
 	public abstract Property getProperty(String name) throws CqiClientException;
 
-	/**
-	 * Gets the results of textometric computation stored in the corpus.
-	 * 
-	 * @return the results
-	 */
-	@Override
-	public ArrayList<ITXMResult> getResults() {
-		ArrayList<ITXMResult> allResults = new ArrayList<ITXMResult>();
-		allResults.addAll(this.children);
-		allResults.addAll(this.lexicons.values());
-		return allResults;
-	}
+	
+	//FIXME: to remove when proved, should not be useful anymore in new TXMResult hierarchy
+//	/**
+//	 * Gets the results of textometric computation stored in the corpus.
+//	 * 
+//	 * @return the results
+//	 */
+//	@Override
+//	public ArrayList<ITXMResult> getResults() {
+//		ArrayList<ITXMResult> allResults = new ArrayList<ITXMResult>();
+//		allResults.addAll(this.children);
+//		allResults.addAll(this.lexicons.values());
+//		return allResults;
+//	}
 
 	/**
 	 * Gets the CQP size of the corpus.
Index: tmp/org.txm.core/src/java/org/txm/Toolbox.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/Toolbox.java	(revision 288)
+++ tmp/org.txm.core/src/java/org/txm/Toolbox.java	(revision 289)
@@ -62,9 +62,6 @@
 import org.txm.statsengine.r.core.RStatsEngine;
 import org.txm.statsengine.r.core.exceptions.RWorkspaceException;
 import org.txm.utils.OSDetector;
-//import org.txm.tbx.chartsengine.jfreechart.JFCChartsEngine;
-//import org.txm.tbx.chartsengine.r.RChartsEngine;
-//import org.txm.tbx.chartsengine.r.RDevice;
 import org.txm.utils.Sh;
 import org.txm.utils.logger.Log;
 
@@ -493,14 +490,6 @@
 //				props.setProperty(R_SVG_DEVICE, "svg"); //$NON-NLS-1$
 //			}
 
-			//			if (props.getProperty(ChartsEngine.PROP_CHARTS_ENGINE_NAME) == null) {
-			//				props.setProperty(ChartsEngine.PROP_CHARTS_ENGINE_NAME, "jfreechart_charts_engine"); //$NON-NLS-1$
-			//			}
-			//			if (props.getProperty(ChartsEngine.PROP_CHARTS_ENGINE_OUTPUT_FORMAT) == null) {
-			//				props.setProperty(ChartsEngine.PROP_CHARTS_ENGINE_OUTPUT_FORMAT, "JFreeChart/Java2D"); //$NON-NLS-1$
-			//			}
-
-
 			if (props.getProperty(TREETAGGER_INSTALL_PATH) == null
 					|| props.getProperty(TREETAGGER_INSTALL_PATH).equals("")) //$NON-NLS-1$
 				props.setProperty(TREETAGGER_INSTALL_PATH, System
Index: tmp/org.txm.core/src/java/org/txm/functions/Function.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/functions/Function.java	(revision 288)
+++ tmp/org.txm.core/src/java/org/txm/functions/Function.java	(revision 289)
@@ -141,6 +141,8 @@
 	}
 	
 	//public abstract boolean toTxt(File file, String encoding) throws Exception;
+	@Deprecated
+	//FIXME: should be moved in an exporter extension
 	public abstract boolean toTxt(File outfile, String encoding, String colseparator, String txtseparator) throws Exception;
 	
 	
@@ -151,6 +153,8 @@
 	 * 
 	 * @return the array of extensions to show in the FileDialog SWT widget
 	 */
+	@Deprecated
+	//FIXME: should be moved in an exporter extension
 	public String[] getExportTXTExtensions() {
 		return new String[]{"*.csv"};
 	}
Index: tmp/org.txm.core/src/groovy/org/txm/importer/ApplyXsl2.java
===================================================================
--- tmp/org.txm.core/src/groovy/org/txm/importer/ApplyXsl2.java	(revision 288)
+++ tmp/org.txm.core/src/groovy/org/txm/importer/ApplyXsl2.java	(revision 289)
@@ -277,11 +277,26 @@
 		StringWriter strWriter = new StringWriter();
 		StreamResult out = new StreamResult(strWriter);
 		
+		File tmp_dir = null;
+		File inputfile_copy = null;
+		
 		if (debug) {
-			File inputfile_copy = new File("/tmp", xmlinfile.getName());
-			System.out.println("copying inputfile in: "+inputfile_copy.getAbsolutePath());
-			inputfile_copy.delete();
+			//FIXME: old version
+			//File inputfile_copy = new File("/tmp", xmlinfile.getName());
+			//FIXME: new version
+			tmp_dir = new File(xmlinfile.getParentFile().getAbsolutePath() + "/tmp");
+			tmp_dir.mkdirs();
+			tmp_dir.deleteOnExit();
+			
+			inputfile_copy = new File(tmp_dir, xmlinfile.getName());
+			
+			System.out.println("copying inputfile to: "+inputfile_copy.getAbsolutePath());
+			//FIXME: old version
+			//inputfile_copy.delete();
+			//FIXME: new version
+			inputfile_copy.deleteOnExit();
 			FileCopy.copy(xmlinfile, inputfile_copy);
+			
 		}
 
 		transformer.transform(new StreamSource(xmlinfile), out);
@@ -292,10 +307,12 @@
 			w.write(strWriter.toString());
 			w.close();
 			
-			if (debug) {
-				File inputfile_copy = new File("/tmp", xmlinfile.getName());
+			if (debug && inputfile_copy != null) {
+				//FIXME: old version
+				//File inputfile_copy = new File("/tmp", xmlinfile.getName());
+				
 				String s = Diff.diffFile(inputfile_copy, xmloutfile);
-				if (s.length() > 0) { // for ultra debug ?
+				if (s.length() > 0) { // for ultra debug?
 					System.out.println("Result "+xmlinfile.getName()+" VS "+ xmloutfile.getName()+" diff="+s);
 				} else {
 					System.out.println("Warning: no diff between "+inputfile_copy+" and "+ xmloutfile);
Index: tmp/org.txm.core/src/groovy/org/txm/importer/xtz/XTZPager.groovy
===================================================================
--- tmp/org.txm.core/src/groovy/org/txm/importer/xtz/XTZPager.groovy	(revision 288)
+++ tmp/org.txm.core/src/groovy/org/txm/importer/xtz/XTZPager.groovy	(revision 289)
@@ -118,7 +118,7 @@
 		// copy default TXM css file in the "facs" edition directory
 		File csshtmlDirectory = new File(outputDirectory, "css")
 		csshtmlDirectory.mkdirs()
-		BundleUtils.copyFiles("org.txm.toolbox", "res", "org/txm/css", "txm.css", csshtmlDirectory);
+		BundleUtils.copyFiles("org.txm.core", "res", "org/txm/css", "txm.css", csshtmlDirectory);
 		
 		// copy CSS files in the "default" edition directory
 		if (cssDirectory.exists()) {
