Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Part.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Part.java	(revision 1112)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Part.java	(revision 1113)
@@ -45,7 +45,7 @@
 		super(partition);
 
 		this.setVisible(false);
-		this.persistable = true;
+		this.internalPersistable = true;
 		this.userPersistable = false;
 	}
 	
@@ -53,7 +53,7 @@
 		super(parametersNodePath); // build the subcorpus part
 		
 		this.setVisible(false);
-		this.persistable = true;
+		this.internalPersistable = true;
 		this.userPersistable = false;
 	}
 	
Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/MainCorpus.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/MainCorpus.java	(revision 1112)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/MainCorpus.java	(revision 1113)
@@ -82,7 +82,7 @@
 	 */
 	public MainCorpus(Partition partition) {
 		super(partition);
-		this.persistable = true;
+		this.internalPersistable = true;
 		throw new IllegalArgumentException("Maincorpus parent must not be a Partition");
 	}
 	
Index: tmp/org.txm.core/src/java/org/txm/Toolbox.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/Toolbox.java	(revision 1112)
+++ tmp/org.txm.core/src/java/org/txm/Toolbox.java	(revision 1113)
@@ -277,10 +277,24 @@
 			e.printStackTrace();
 		}
 
+		// loads and recreate the existing projects
+		loadProjects();
 
+
+		initializing = false;
+		return checkState();
+	}
+
+	/**
+	 * Loads and recreate the existing projects.
+	 */
+	// FIXME: SJ: should be done in the Workspace class
+	public static void loadProjects()	{
+		
+
 		// FIXME: tmp persistence tests: Reload saved results
 		//		if (TBXPreferences.getInstance().getBoolean(TBXPreferences.AUTO_PERSISTENCE_ENABLED)) {
-		Log.severe("*** Toolbox.initialize(): reloading projects...");
+		Log.finest("Toolbox.initialize(): reloading projects...");
 		
 		IWorkspace rcpWorkspace = ResourcesPlugin.getWorkspace();
 		IProject projects[] = rcpWorkspace.getRoot().getProjects();
@@ -291,8 +305,6 @@
 			
 			//IScopeContext projectScope = new ProjectScope(projects[i]);
 
-			//System.out.println("*************** Toolbox.initialize(): scope = " + projectScope.getName());
-			
 			ArrayList<String> resultNodePaths = TXMPreferences.getAllResultsNodePaths("project/" + projects[i].getName() + "/");
 			
 			Log.info("Toolbox.initialize(): loading project " + projects[i].getName() + "...");
@@ -314,7 +326,7 @@
 					String className = TXMPreferences.preferencesRootNode.node(parametersNodePath).get("class", ""); //$NON-NLS-1$
 					
 					if(!className.equals(Project.class.getName()))	{
-						Log.finest("Toolbox.initialize(): not a project, result skipped (classame = " + className + ").");
+					//	Log.finest("Toolbox.initialize(): not a project, result skipped (classame = " + className + ").");
 						continue;
 					}
 
@@ -326,7 +338,6 @@
 
 					
 					Log.finest("Toolbox.initialize(): class = " + className); //$NON-NLS-1$
-//					Log.finest("Toolbox.initialize(): parent_uuid = " + TXMPreferences.getString(TXMPreferences.PARENT_UUID, nodeQualifier));
 					Log.finest("Toolbox.initialize(): parent_uuid = " + TXMPreferences.preferencesRootNode.node(parametersNodePath).get(TXMPreferences.PARENT_UUID, "")); //$NON-NLS-1$
 					String bundleId = TXMPreferences.preferencesRootNode.node(parametersNodePath).get(TXMPreferences.BUNDLE_ID, ""); //$NON-NLS-1$
 					Log.finest("Toolbox.initialize(): bundle_id = " + bundleId); //$NON-NLS-1$
@@ -335,7 +346,6 @@
 						Log.finest("Warning: can not restore object with bundle name " + bundleId); //$NON-NLS-1$
 						continue;
 					}
-
 					
 					Log.info("Toolbox.initialize(): creating project " + projects[i].getName() + ".");
 					Class<?> cl = bundle.loadClass(className);
@@ -343,7 +353,7 @@
 					TXMResult result = (TXMResult) cons.newInstance(parametersNodePath);
 					
 					// not an internal persistence (eg. corpus or partition)
-					if (!result.isPersistable())	{
+					if (!result.isInternalPersistable())	{
 						result.setUserPersistable(true);	
 					}
 				} catch (Exception e) {
@@ -355,15 +365,8 @@
 
 		}
 		
-		
-		
-
-
-
-		initializing = false;
-		return checkState();
 	}
-
+	
 	/**
 	 * initialize the toolbox from a UTF-8 file
 	 * 
Index: tmp/org.txm.core/src/java/org/txm/core/preferences/TXMPreferences.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/preferences/TXMPreferences.java	(revision 1112)
+++ tmp/org.txm.core/src/java/org/txm/core/preferences/TXMPreferences.java	(revision 1113)
@@ -1303,37 +1303,6 @@
 	 */
 	// FIXME: try to use the scope directly and not pass through the reference service
 	public static ArrayList<String> getAllResultsNodePaths(String rootPath)	{
-//		ArrayList<String> resultsNodesQualifiers = new ArrayList<String>();
-//		try {
-//			IPreferencesService service = Platform.getPreferencesService();
-//			for (String scopeName : service.getRootNode().childrenNames()) {
-//				System.out.println("TXMPreferences.getAllResultsNodesQualifiers(): scope = " + scopeName);
-//				if(!scopeName.equals(scope.getName()))	{
-//					System.out.println("TXMPreferences.getAllResultsNodesQualifiersProjects(): skipping scope.");
-//					continue;
-//				}
-//
-//				String[] nodesNames = service.getRootNode().node(scopeName).node(nodePath).childrenNames();
-//				
-//				System.out.println("TXMPreferences.getAllResultsNodesQualifiers(): nodes found = " + nodesNames.length);
-//				
-//				
-//				Arrays.sort(nodesNames);
-//				for (String nodeName : nodesNames) {
-//					System.out.println("TXMPreferences.getAllResultsNodesQualifiers(): node name = " + nodeName);
-//					
-//					if(nodeName.startsWith(TXMResult.UUID_PREFIX))	{
-//						resultsNodesQualifiers.add(nodeName);
-//					}
-//				}
-//			}
-//		} catch (Exception e) {
-//			e.printStackTrace();
-//		}
-//		Collections.sort(resultsNodesQualifiers);
-//		return resultsNodesQualifiers;
-		
-		
 		Log.finest("TXMPreferences.getAllResultsNodePaths(): looking for nodes in path \"" + preferencesRootNode.node(rootPath) + "\".");
 		
 		ArrayList<String> nodePaths = new ArrayList<String>();
@@ -1348,7 +1317,8 @@
 				Log.finest("TXMPreferences.getAllResultsNodePaths(): node name = " + nodeName);
 				
 				if(nodeName.startsWith(TXMResult.UUID_PREFIX))	{
-					Log.finest("TXMPreferences.getAllResultsNodePaths(): node path = " + rootPath + nodeName);
+					// Debug
+					//Log.finest("TXMPreferences.getAllResultsNodePaths(): node path = " + rootPath + nodeName);
 					nodePaths.add(rootPath + nodeName);
 				}
 			}
@@ -1363,32 +1333,32 @@
 	}
 
 
+//	FIXME: became useless?
+//	/**
+//	 * Deletes all the result nodes from the preferences and files that are not set as persistable.
+//	 */
+//	public static void deleteAllNotPersistableResultsNodes(String path)	{
+//		
+//		ArrayList<String> resultsNodesQualifier = getAllResultsNodePaths(path);
+//		for (int i = 0; i < resultsNodesQualifier.size(); i++) {
+//			TXMResult result = TXMResult.getResult(resultsNodesQualifier.get(i)); 
+//			if(result != null && !result.isPersistable())	{
+//				delete(preferencesRootNode.node(path).node(resultsNodesQualifier.get(i)));
+//			}
+//		}
+//	}
 
-	/**
-	 * Deletes all the result nodes from the preferences and files that are not set as persistable.
-	 */
-	public static void deleteAllNotPersistableResultsNodes(String path)	{
-		
-		ArrayList<String> resultsNodesQualifier = getAllResultsNodePaths(path);
-		for (int i = 0; i < resultsNodesQualifier.size(); i++) {
-			TXMResult result = TXMResult.getResult(resultsNodesQualifier.get(i)); 
-			if(result != null && !result.isPersistable())	{
-				delete(preferencesRootNode.node(path).node(resultsNodesQualifier.get(i)));
-			}
-		}
-	}
-
-
-	/**
-	 * Deletes all the result nodes from the preferences and files.
-	 */
-	public static void deleteAllResultsNodes(String path)	{
-		
-		ArrayList<String> resultsNodesQualifier = getAllResultsNodePaths(path);
-		for (int i = 0; i < resultsNodesQualifier.size(); i++) {
-			delete(preferencesRootNode.node(path).node(resultsNodesQualifier.get(i)));
-		}
-	}
+//FIXME: became useless?
+//	/**
+//	 * Deletes all the result nodes from the preferences and files.
+//	 */
+//	public static void deleteAllResultsNodes(String path)	{
+//		
+//		ArrayList<String> resultsNodesQualifier = getAllResultsNodePaths(path);
+//		for (int i = 0; i < resultsNodesQualifier.size(); i++) {
+//			delete(preferencesRootNode.node(path).node(resultsNodesQualifier.get(i)));
+//		}
+//	}
 	
 
 	/**
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 1112)
+++ tmp/org.txm.core/src/java/org/txm/core/results/TXMResult.java	(revision 1113)
@@ -143,7 +143,7 @@
 	/**
 	 * Internal persistable state.
 	 */
-	protected boolean persistable;
+	protected boolean internalPersistable;
 
 	/**
 	 * User persistable state.
@@ -224,7 +224,7 @@
 		
 		
 		this.dirty = true;
-		this.persistable = false;
+		this.internalPersistable = false;
 		this.userPersistable = TBXPreferences.getInstance().getBoolean(TBXPreferences.AUTO_PERSISTENCE_ENABLED);
 
 
@@ -1790,7 +1790,7 @@
 	 * @return
 	 */
 	public boolean mustBePersisted()	{
-		if (this.persistable
+		if (this.internalPersistable
 				//|| TBXPreferences.getInstance().getBoolean(TBXPreferences.AUTO_PERSISTENCE_ENABLED) // FIXME
 				|| this.userPersistable)	{
 			return true;
@@ -1986,19 +1986,19 @@
 
 
 	/**
-	 * Gets the persistable state. 
+	 * Gets the internal persistable state. 
 	 * @return the persistable
 	 */
-	public boolean isPersistable() {
-		return persistable;
+	public boolean isInternalPersistable() {
+		return internalPersistable;
 	}
 
 	/**
-	 * Sets the persistable state. If set to false, the result will never be saved to file.
+	 * Sets the internal persistable state. Results internally persisted will not be deleted when quitting, event if the user set them as non persistable.
 	 * @param persistable the persistable to set
 	 */
-	public void setPersistable(boolean persistable) {
-		this.persistable = persistable;
+	public void setInternalPersistable(boolean persistable) {
+		this.internalPersistable = persistable;
 	}
 
 	/**
@@ -2027,7 +2027,7 @@
 	 */
 	public void setUserPersistable(boolean userPersistable) {
 		this.userPersistable = userPersistable;
-		if (userPersistable && this.parent != null && !this.parent.isPersistable()) {
+		if (userPersistable && this.parent != null && !this.parent.isInternalPersistable()) {
 			this.parent.setUserPersistable(true);
 		}
 		if (!userPersistable) {
@@ -2035,7 +2035,8 @@
 				child.setUserPersistable(userPersistable);
 			}
 		}
-		Log.finest("TXMResult.setUserPersistable(): " + userPersistable);
+		// Debug
+//		Log.finest("TXMResult.setUserPersistable(): " + userPersistable);
 	}
 
 	/**
Index: tmp/org.txm.core/src/java/org/txm/objects/Text.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/objects/Text.java	(revision 1112)
+++ tmp/org.txm.core/src/java/org/txm/objects/Text.java	(revision 1113)
@@ -64,7 +64,7 @@
 	public Text(Project project) {
 		super(project);
 		this.setVisible(false);
-		this.persistable = true;
+		this.internalPersistable = true;
 	}
 
 	/**
@@ -76,7 +76,7 @@
 	public Text(String parametersNodePath) {
 		super(parametersNodePath);
 		this.setVisible(false);
-		this.persistable = true;
+		this.internalPersistable = true;
 	}
 
 	
Index: tmp/org.txm.core/src/java/org/txm/objects/CorpusBuild.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/objects/CorpusBuild.java	(revision 1112)
+++ tmp/org.txm.core/src/java/org/txm/objects/CorpusBuild.java	(revision 1113)
@@ -121,7 +121,7 @@
 	 */
 	public CorpusBuild(Project project) {
 		super(project);
-		this.persistable = true;
+		this.internalPersistable = true;
 
 		//		this.name = name;
 		//		this.persistable = true;
@@ -141,7 +141,7 @@
 	 */
 	public CorpusBuild(CorpusBuild corpus2) {
 		super(corpus2);
-		this.persistable = true;
+		this.internalPersistable = true;
 	}
 	
 	/**
@@ -151,7 +151,7 @@
 	 */
 	public CorpusBuild(Partition partition) {
 		super(partition);
-		this.persistable = true;
+		this.internalPersistable = true;
 	}
 
 	/**
@@ -160,7 +160,7 @@
 	 */
 	public CorpusBuild(String parametersNodePath) {
 		super(parametersNodePath);
-		this.persistable = true;
+		this.internalPersistable = true;
 	}
 	
 	public String getID() {
Index: tmp/org.txm.core/src/java/org/txm/objects/Edition.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/objects/Edition.java	(revision 1112)
+++ tmp/org.txm.core/src/java/org/txm/objects/Edition.java	(revision 1113)
@@ -77,7 +77,7 @@
 	public Edition(Text text) {
 		super(text);
 		this.visible = false;
-		this.persistable = true;
+		this.internalPersistable = true;
 	}
 	
 	/**
@@ -88,7 +88,7 @@
 	public Edition(String parametersNodePath) {
 		super(parametersNodePath);
 		this.visible = false;
-		this.persistable = true;
+		this.internalPersistable = true;
 	}
 
 	/**
Index: tmp/org.txm.core/src/java/org/txm/objects/Workspace.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/objects/Workspace.java	(revision 1112)
+++ tmp/org.txm.core/src/java/org/txm/objects/Workspace.java	(revision 1113)
@@ -127,7 +127,7 @@
 		super("ROOT");
 		
 		IWorkspace rcpWorkspace = ResourcesPlugin.getWorkspace();
-		this.persistable = true;
+		this.internalPersistable = true;
 		this.pName = rcpWorkspace.getRoot().getName(); // corpora
 		//		this.setPath("/"+pName); 
 //		this.xmlDefinitionFile = xmlfile;
Index: tmp/org.txm.core/src/java/org/txm/objects/Project.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/objects/Project.java	(revision 1112)
+++ tmp/org.txm.core/src/java/org/txm/objects/Project.java	(revision 1113)
@@ -73,27 +73,54 @@
  */
 public class Project extends TXMResult {
 
+	
+	
+	private ArrayList<String> pEditionNames = new ArrayList<String>();
+	private IProject rcpProject;
+	
+	private boolean pCleanAfterBuild;
+	private ProjectScope preferenceScope;
+
+	
+	/**
+	 * Name.
+	 */
 	@Parameter(key=TBXPreferences.NAME)
 	String pName;
 
+	/**
+	 * Name of import module.
+	 */
 	@Parameter(key=TBXPreferences.IMPORT_MODULE_NAME)
 	String pImportModuleName;
 
+	/**
+	 * 
+	 */
 	@Parameter(key=TBXPreferences.LINKS)
 	private HashMap<String, Alignement> links = new HashMap<String, Alignement>();
 
+	/**
+	 * Default edition.
+	 */
 	@Parameter(key=TBXPreferences.DEFAULT_EDITION)
 	private String pDefaultEditionName;
 
-	/** The encoding. */
+	/**
+	 * Encoding.
+	 */
 	@Parameter(key=TBXPreferences.ENCODING)
 	private String pEncoding;
 
-	/** The lang. */
+	/**
+	 * Language.
+	 */
 	@Parameter(key=TBXPreferences.LANG)
 	private String pLanguage;
 
-	/** The srcdir. */
+	/**
+	 * Source directory.
+	 */
 	@Parameter(key=TBXPreferences.SOURCE)
 	private File pSrcDirectory;
 
@@ -104,24 +131,40 @@
 	//	@Parameter(key=TBXPreferences.FRONT_XSL_PARAMETERS)
 	//	private HashMap<String, String> pXsltParameters;
 
-	/** The author. */
+	/**
+	 * Author.
+	 */
 	@Parameter(key=TBXPreferences.AUTHOR)
 	private String pAuthor;
+	
+	/**
+	 * Font.
+	 */
 	@Parameter(key=TBXPreferences.FONT)
 	private String pFont = "Arial";
 
-	private ArrayList<String> pEditionNames = new ArrayList<String>();
-	private IProject rcpProject;
+	/**
+	 * Description.
+	 */
 	@Parameter(key=TBXPreferences.DESCRIPTION)
 	private String pDescription;
+	
+	/**
+	 * 
+	 */
 	@Parameter(key=TBXPreferences.ANNOTATE)
 	private boolean pAnnotate;
-	private boolean pCleanAfterBuild;
-	private ProjectScope preferenceScope;
 
+	/**
+	 * Last update date.
+	 */
+	@Parameter(key=TBXPreferences.UPDATE_DATE)
+	private Date pLastUpdateDate;
+	
+	/**
+	 * Creation date.
+	 */
 	@Parameter(key=TBXPreferences.CREATE_DATE)
-	private Date pLastUpdateDate;
-	@Parameter(key=TBXPreferences.UPDATE_DATE)
 	private Date pCreationDate;
 
 	/**
@@ -133,7 +176,7 @@
 	 */
 	public Project(Workspace workspace, String name) throws Exception {
 		super(workspace);
-		this.persistable = true;
+		this.internalPersistable = true;
 		this.pName = name;
 		this.dirty = false;
 		this.hasBeenComputedOnce = true;
@@ -166,7 +209,7 @@
 		//		this.scope = new BasePreferenceScope(this);
 		
 		
-		// loading corpus
+		// reloading existing results
 		this.loadResults();
 		
 	}
@@ -260,7 +303,7 @@
 					TXMResult result = (TXMResult) cons.newInstance(parametersNodePath);
 					
 					// not an internal persistence (eg. corpus or partition)
-					if (!result.isPersistable())	{
+					if (!result.isInternalPersistable())	{
 						result.setUserPersistable(true);	
 					}
 				} catch (Exception e) {
@@ -270,6 +313,8 @@
 			}
 	}
 	
+	
+	
 
 	//	public BasePreferenceScope getPreferenceScope() {
 	//		return scope;
Index: tmp/org.txm.core/src/java/org/txm/objects/Partition.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/objects/Partition.java	(revision 1112)
+++ tmp/org.txm.core/src/java/org/txm/objects/Partition.java	(revision 1113)
@@ -40,7 +40,7 @@
 	 */
 	public Partition(CorpusBuild parent) {
 		super(parent);
-		this.persistable = true;
+		this.internalPersistable = true;
 	}
 	
 	/**
@@ -49,7 +49,7 @@
 	 */
 	public Partition(String parametersNodePath) {
 		super(parametersNodePath);
-		this.persistable = true;
+		this.internalPersistable = true;
 	}
 	
 	/**
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/debug/TXMResultDebugView.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/debug/TXMResultDebugView.java	(revision 1112)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/debug/TXMResultDebugView.java	(revision 1113)
@@ -132,7 +132,7 @@
 		buffer.append("Selected object = " + this.currentResult + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
 		buffer.append("Node visible = " + this.currentResult.isVisible() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
 		buffer.append("Node weight = " + this.currentResult.getWeight() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-		buffer.append("Persistable = " + this.currentResult.isPersistable() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
+		buffer.append("Persistable = " + this.currentResult.isInternalPersistable() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
 		buffer.append("User persistable = " + this.currentResult.isUserPersistable() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
 //		if (this.currentResult instanceof ChartResult) 	{
 //			buffer.append("Chart engine = " + ((ChartResult)this.currentResult).getChartsEngine() + ", chart object = " + ((ChartResult)this.currentResult).getChart()
