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 1171)
+++ tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/editors/ConcordanceEditor.java	(revision 1172)
@@ -1037,6 +1037,17 @@
 					super.widgetSelected(e);
 				}
 			});
+			leftSizeSpinner.addKeyListener(new KeyListener() {
+				@Override
+				public void keyReleased(KeyEvent e) {
+					if (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR) {
+						concordance.setLeftContextSize(leftSizeSpinner.getSelection());
+						ConcordanceEditor.this.compute(true);
+					}
+				}
+				@Override
+				public void keyPressed(KeyEvent e) { }
+			});
 			new Label(propertiesPanel, SWT.NONE);
 			rightSizeSpinner = new Spinner(propertiesPanel, SWT.BORDER);
 			rightSizeSpinner.addSelectionListener(new ComputeSelectionListener(this) {
@@ -1046,6 +1057,17 @@
 					super.widgetSelected(e);
 				}
 			});
+			rightSizeSpinner.addKeyListener(new KeyListener() {
+				@Override
+				public void keyReleased(KeyEvent e) {
+					if (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR) {
+						concordance.setRightContextSize(rightSizeSpinner.getSelection());
+						ConcordanceEditor.this.compute(true);
+					}
+				}
+				@Override
+				public void keyPressed(KeyEvent e) { }
+			});
 		} catch (Exception e1) {
 			// TODO Auto-generated catch block
 			e1.printStackTrace();
Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/CQPCorpus.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/CQPCorpus.java	(revision 1171)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/CQPCorpus.java	(revision 1172)
@@ -820,14 +820,14 @@
 				Element subcorpusElem = (Element) subcorpusElems.item(i);
 				if (!subcorpusElem.getParentNode().equals(preBuildElem)) continue; //level 1 elements
 				//System.out.println("subcorpus "+subcorpusElem.getAttribute("name"));
-				try {
-					Subcorpus subcorp = this.createSubcorpus(subcorpusElem);
+//				try {
+					Subcorpus subcorp = new Subcorpus(this);
 					subcorp._load(subcorpusElem);
-					subcorp.compute();
-				} catch (CqiClientException ex) {
-					Log.warning(this.pID + TXMCoreMessages.Corpus_12 + pID
-							+ " : " + ex); //$NON-NLS-1$
-				}
+					//subcorp.compute();
+//				} catch (CqiClientException ex) {
+//					Log.warning(this.pID + TXMCoreMessages.Corpus_12 + pID
+//							+ " : " + ex); //$NON-NLS-1$
+//				}
 			}
 
 			NodeList partitionElems = preBuildElem.getElementsByTagName("partition"); //$NON-NLS-1$
@@ -851,7 +851,7 @@
 					
 //					partition.setSelfElement(partitionElem);
 //					partition.load();
-					partition.compute();
+					//partition.compute();
 				} catch (Exception ex) {
 					Log.warning(this.pID + TXMCoreMessages.Corpus_19 + name
 							+ " : " + ex); //$NON-NLS-1$
Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Subcorpus.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Subcorpus.java	(revision 1171)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Subcorpus.java	(revision 1172)
@@ -283,6 +283,7 @@
 	@Override
 	protected boolean _load(Element e) {
 		if (e != null) {
+			this.userName = this.pID = e.getAttribute(NAME);
 			this.pQuery = new CQLQuery(e.getAttribute("query")); //$NON-NLS-1$
 
 			NodeList subcorpusElems = e.getElementsByTagName("subcorpus"); //$NON-NLS-1$
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/LoadBinaryCorporaDirectory.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/LoadBinaryCorporaDirectory.java	(revision 1171)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/LoadBinaryCorporaDirectory.java	(revision 1172)
@@ -28,6 +28,7 @@
 package org.txm.rcp.commands.workspace;
 
 import java.io.File;
+import java.util.ArrayList;
 
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
@@ -79,7 +80,6 @@
 			File directory = new File(dialog.getFilterPath());
 
 			if (directory.exists()) {
-
 				LastOpened.set(ID, directory);
 				return loadBinaryCorpusFromCorporaDirectory(directory);
 			}
@@ -119,13 +119,12 @@
 					return Status.CANCEL_STATUS;
 				}
 				
-				final Project newProject2 = loadBinaryCorpusFromCorporaDirectory(corporaDirectory, this, monitor);
+				final ArrayList<Project> newProjects = loadBinaryCorpusFromCorporaDirectory(directory, this, monitor);
 
 				this.acquireSemaphore();
 				try {
 					SearchEnginesManager.getCQPSearchEngine().start(null);
 				} catch (Exception e) {
-					// TODO Auto-generated catch block
 					e.printStackTrace();
 				}
 				this.releaseSemaphore();
@@ -134,8 +133,8 @@
 					@Override
 					public void run() {
 						
-						if (newProject2 != null) {
-							Project.loadTXMResultsFromProjectScope(newProject2.getRCPProject());
+						for (Project newProject2 : newProjects) {
+							newProject2.save();
 						}
 						
 						RestartTXM.reloadViews();
@@ -160,9 +159,10 @@
 	 * @param monitor
 	 * @return
 	 */
-	protected static Project loadBinaryCorpusFromCorporaDirectory(File corporaDirectory, JobHandler job, IProgressMonitor monitor) {
-		Project project = null;
+	protected static ArrayList<Project> loadBinaryCorpusFromCorporaDirectory(File corporaDirectory, JobHandler job, IProgressMonitor monitor) {
 		
+		ArrayList<Project> projects = new ArrayList<Project>();
+		
 		try {
 			
 			SearchEngine engine = SearchEnginesManager.getCQPSearchEngine();
@@ -177,7 +177,11 @@
 
 			monitor.subTask(TXMUIMessages.AddBase_32);
 			for (File corpusDirectory : corporaDirectory.listFiles()) {
-
+				
+				if (corpusDirectory.isFile()) continue;
+				if (corpusDirectory.isHidden()) continue;
+				
+				Project project = null;
 				if (corpusDirectory.isDirectory()) {
 					project = LoadBinaryCorpus.loadBinaryCorpusAsDirectory(corpusDirectory, monitor);
 				} else if (corpusDirectory.getName().endsWith(".txm")) {
@@ -187,22 +191,22 @@
 				}
 
 //				Project base = LoadBinaryCorpus.loadBinaryCorpusAsDirectory(corpusDirectory);
-//				if (base == null) {
-//					System.out.println("Fail to load binary corpus: "+corpusDirectory);
-//				}
+				if (project == null) {
+					System.out.println("Fail to load binary corpus: "+corpusDirectory);
+				} else {
+					projects.add(project);
+				}
 			}
 
 			monitor.subTask(TXMUIMessages.AddBase_33);
 			
 		} catch (ThreadDeath td) { 
-			return null;
 		} catch (Exception e2) {
 			org.txm.rcp.utils.Logger.printStackTrace(e2);
-			return null;
 		} finally {
 			monitor.done();
 		}
 		
-		return project;
+		return projects;
 	}
 }
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/Load079BinaryCorpus.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/Load079BinaryCorpus.java	(revision 1171)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/Load079BinaryCorpus.java	(revision 1172)
@@ -114,12 +114,9 @@
 		MainCorpus c = new MainCorpus(project);
 		BaseOldParameters params = new BaseOldParameters(new File(project.getProjectDirectory(), "import.xml"));
 		params.load();
-		if (c._load(params.getCorpusElement())) {
-			project.compute();
-		} else {
-			project.delete();
-		}
+		c._load(params.getCorpusElement());
 		
+		project.saveParameters(true);
 
 		//Toolbox.workspace.save();
 		return project;
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/LoadBinaryCorpus.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/LoadBinaryCorpus.java	(revision 1171)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/LoadBinaryCorpus.java	(revision 1172)
@@ -200,7 +200,7 @@
 						}
 						
 						if (newProject2 != null) {
-							Project.loadTXMResultsFromProjectScope(newProject2.getRCPProject());
+							newProject2.save();
 							RestartTXM.reloadViews();
 							//System.out.println("Select newly loaded corpus: "+base2.getCorpora().values());
 							CorporaView.select(newProject2.getChildren(MainCorpus.class));
@@ -236,10 +236,10 @@
 	public static Project loadBinaryCorpusArchive(File zipFile, JobHandler jobhandler, final IProgressMonitor monitor) {
 		Project project = null;
 		try {
-			SearchEngine engine = SearchEnginesManager.getCQPSearchEngine();
-			if (engine.isRunning()) {
-				engine.stop();
-			}
+//			SearchEngine engine = SearchEnginesManager.getCQPSearchEngine();
+//			if (engine.isRunning()) {
+//				engine.stop();
+//			}
 			
 			//CHECK ZIPPED FILE
 			project = Load080BinaryCorpus.loadBinaryCorpus(zipFile, monitor);
@@ -299,10 +299,10 @@
 			return null; 
 		}
 
-		SearchEngine engine = SearchEnginesManager.getCQPSearchEngine();
-		if (engine.isRunning()) {
-			engine.stop();
-		}
+//		SearchEngine engine = SearchEnginesManager.getCQPSearchEngine();
+//		if (engine.isRunning()) {
+//			engine.stop();
+//		}
 		
 //		//File txmregistry = new File(Toolbox.getTxmHomePath(), "registry"); //$NON-NLS-1$
 //		//txmregistry.mkdir();
@@ -319,7 +319,7 @@
 		// seems like a binary corpus directory
 		// copy files in the new current corpora directory
 		File destDir = new File(Toolbox.workspace.getLocation(), corpusDirectory.getName().toUpperCase());
-		if (!destDir.equals(corpusDirectory) && !destDir.exists()) {
+		if (!destDir.equals(corpusDirectory)) {
 			FileCopy.copyFiles(corpusDirectory, destDir); // the corpus directory is not in the corpora directory
 		}
 		
Index: tmp/org.txm.core/src/java/org/txm/Toolbox.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/Toolbox.java	(revision 1171)
+++ tmp/org.txm.core/src/java/org/txm/Toolbox.java	(revision 1172)
@@ -277,7 +277,7 @@
 			e.printStackTrace();
 		}
 
-		// loads and recreate the existing projects
+		// loads and recreate the existing projects, loadParameters() needs engines to be ready
 		workspace.loadTXMResultsFromProjectScopes();
 
 
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 1171)
+++ tmp/org.txm.core/src/java/org/txm/core/results/TXMResult.java	(revision 1172)
@@ -1972,11 +1972,7 @@
 	 * @return
 	 */
 	public boolean mustBePersisted()	{
-		if (this.internalPersistable
-				|| this.userPersistable)	{
-			return true;
-		}
-		return false;
+		return this.internalPersistable || this.userPersistable;
 	}
 
 	/**
Index: tmp/org.txm.core/src/java/org/txm/objects/Workspace.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/objects/Workspace.java	(revision 1171)
+++ tmp/org.txm.core/src/java/org/txm/objects/Workspace.java	(revision 1172)
@@ -229,8 +229,17 @@
 			}
 
 			//System.out.println(parameters.toString());
-			Project b = new Project(this, binCorpusDir.getName());
 			
+			// load the project from the project .settings directory
+			IWorkspace rcpWorkspace = ResourcesPlugin.getWorkspace();
+			//rcpWorkspace.getRoot().refreshLocal(1, new LogMonitor());
+			IProject rcpProject = rcpWorkspace.getRoot().getProject(binCorpusDir.getName());
+			if (!rcpProject.exists()) rcpProject.create(new LogMonitor());
+			if (!rcpProject.isOpen()) rcpProject.open(new LogMonitor());
+			Project.loadTXMResultsFromProjectScope(rcpProject);
+			
+			Project b = getProject(binCorpusDir.getName());
+			
 			return b;
 		} else {
 			System.out.println(TXMCoreMessages.bind(TXMCoreMessages.Project_26, binCorpusDir));
Index: tmp/org.txm.core/src/java/org/txm/objects/Project.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/objects/Project.java	(revision 1171)
+++ tmp/org.txm.core/src/java/org/txm/objects/Project.java	(revision 1172)
@@ -211,11 +211,9 @@
 		//		}
 		//		
 		//		this.scope = new BasePreferenceScope(this);
-
-
+		
 		// reloading existing results
 		this.loadResults();
-
 	}
 
 
@@ -259,9 +257,9 @@
 	/**
 	 * Loads and create the persisted results from the preferences service.
 	 */
-	protected void loadResults()	{
+	public void loadResults()	{
 		//		if (TBXPreferences.getInstance().getBoolean(TBXPreferences.AUTO_PERSISTENCE_ENABLED)) {
-		Log.finest("*** Project.loadResults(): reloading persitent results...");
+		Log.finest("*** Project.loadResults(): reloading project persitent results...");
 
 		IWorkspace rcpWorkspace = ResourcesPlugin.getWorkspace();
 		//	IProject projects[] = rcpWorkspace.getRoot().getProjects();
@@ -364,8 +362,8 @@
 	 */
 	public boolean _load(BaseOldParameters params) throws Exception {
 		params.load();
-		String name = params.name;
-		File dir = new File(this.getWorkspace().getLocation(), name);
+		pName = userName = params.name;
+		File dir = new File(this.getWorkspace().getLocation(), userName);
 		File paramFile = new File(dir, "import.xml");
 		if (!paramFile.exists()) return false;
 
@@ -1150,7 +1148,8 @@
 	
 	public boolean save() {
 		try {
-			super.saveParameters(true);
+			autoSaveParametersFromAnnotations();
+			saveParameters(true);
 		} catch (Exception e) {
 			// TODO Auto-generated catch block
 			e.printStackTrace();
