Index: tmp/org.txm.index.core/src/org/txm/index/core/functions/Lexicon.java
===================================================================
--- tmp/org.txm.index.core/src/org/txm/index/core/functions/Lexicon.java	(revision 738)
+++ tmp/org.txm.index.core/src/org/txm/index/core/functions/Lexicon.java	(revision 739)
@@ -93,6 +93,11 @@
 
 	private Corpus corpus;
 
+	
+	/**
+	 * 
+	 * @param corpus
+	 */
 	public Lexicon(Corpus corpus) {
 		super(corpus);
 		this.corpus = corpus;
Index: tmp/org.txm.lexicaltable.core/src/org/txm/lexicaltable/core/functions/LexicalTable.java
===================================================================
--- tmp/org.txm.lexicaltable.core/src/org/txm/lexicaltable/core/functions/LexicalTable.java	(revision 738)
+++ tmp/org.txm.lexicaltable.core/src/org/txm/lexicaltable/core/functions/LexicalTable.java	(revision 739)
@@ -160,6 +160,13 @@
 	}
 
 	
+	
+	public LexicalTable(String uuid)	{
+		super(uuid, null);
+	}
+
+	
+	
 	@Override
 	public boolean loadParameters() {
 		try {
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/listeners/ComputeSelectionListener.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/listeners/ComputeSelectionListener.java	(revision 738)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/listeners/ComputeSelectionListener.java	(revision 739)
@@ -1,6 +1,3 @@
-/**
- * 
- */
 package org.txm.rcp.editors.listeners;
 
 import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -13,7 +10,7 @@
 import org.txm.rcp.preferences.RCPPreferences;
 
 /**
- * A selection listener that can be added to editors widgets and that call the TXMEditor.compute() method.
+ * A selection listener that can be added to editors widgets and that calls the TXMEditor.compute() method.
  * @author sjacquot
  *
  */
@@ -39,7 +36,7 @@
 
 	@Override
 	public void selectionChanged(SelectionChangedEvent event) {
-		// to skip programmatically setSelection() calls
+		// to skip programmatically setSelection() calls on some widgets or if auto-compute preference is false
 		if(!mustIgnoreEvent(event)
 				&& TXMPreferences.getBoolean(RCPPreferences.AUTO_UPDATE_EDITOR, RCPPreferences.PREFERENCES_NODE))	{
 			this.editor.compute(true);
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/structures/StructuralUnitsCombosGroup.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/structures/StructuralUnitsCombosGroup.java	(revision 738)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/structures/StructuralUnitsCombosGroup.java	(revision 739)
@@ -1,9 +1,7 @@
 package org.txm.rcp.swt.widget.structures;
 
 import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.RowLayout;
 import org.eclipse.swt.widgets.Composite;
@@ -13,14 +11,14 @@
 import org.txm.searchengine.cqp.corpus.StructuralUnitProperty;
 
 /**
- * A group Widget that manages the Structural Unit and Structural Unit Property with two linked combo viewers.
+ * A Widgets group that manages the Structural Unit and Structural Unit Property with two linked combo viewers.
  * 
  * @author sjacquot
  *
  */
 public class StructuralUnitsCombosGroup extends Group {
 
-	
+		
 	/**
 	 * Structural Units.
 	 */
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/structures/PropertiesComboViewer.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/structures/PropertiesComboViewer.java	(revision 738)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/structures/PropertiesComboViewer.java	(revision 739)
@@ -44,13 +44,13 @@
 		
 		this.setContentProvider(ArrayContentProvider.getInstance());
 
+		this.updateFromList(properties, selectedProperty);
+
 		// Listener
 		if(autoCompute)	{
 			this.addSelectionChangedListener(new ComputeSelectionListener(editor));
 		}
-		
-		this.updateFromList(properties, selectedProperty);
-		
+
 	}
 
 
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/results/ComputeTXMResult.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/results/ComputeTXMResult.java	(revision 738)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/results/ComputeTXMResult.java	(revision 739)
@@ -7,6 +7,13 @@
 import org.eclipse.ui.handlers.HandlerUtil;
 import org.txm.rcp.editors.TXMEditor;
 
+/**
+ * Calls TXMEditor.ompute() on the current active editor.
+ * 
+ * @author mdecorde
+ * @author sjacquot
+ *
+ */
 public class ComputeTXMResult extends AbstractHandler {
 
 	@Override
@@ -18,7 +25,7 @@
 		}
 
 		TXMEditor editor = (TXMEditor) part;
-		editor.compute(false);
+		editor.compute(true);
 
 		return null;
 	}
Index: tmp/org.txm.specificities.core/src/org/txm/specificities/core/functions/Specificities.java
===================================================================
--- tmp/org.txm.specificities.core/src/org/txm/specificities/core/functions/Specificities.java	(revision 738)
+++ tmp/org.txm.specificities.core/src/org/txm/specificities/core/functions/Specificities.java	(revision 739)
@@ -633,10 +633,10 @@
 			return false;
 		}
 		
-		if (this.lexicalTable.getNColumns() < 2) {
-			Log.severe(SpecificitiesCoreMessages.ComputeError_NEED_AT_LEAST_2_PARTS);
-			return false;
-		}
+//		if (this.lexicalTable.getNColumns() < 2) {
+//			Log.severe(SpecificitiesCoreMessages.ComputeError_NEED_AT_LEAST_2_PARTS);
+//			return false;
+//		}
 		
 		return true;
 	}
Index: tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/editors/SpecificitiesEditor.java
===================================================================
--- tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/editors/SpecificitiesEditor.java	(revision 738)
+++ tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/editors/SpecificitiesEditor.java	(revision 739)
@@ -79,6 +79,8 @@
 	 */
 	protected SpecificitiesLinesViewerComparator viewerComparator;
 
+
+	TableColumn typeFrequencyColumn;
 	
 	
 	/**
@@ -159,12 +161,7 @@
 			
 			
 			// create 2nd column
-			TableColumn typeFrequencyColumn = new TableColumn(viewer.getTable(), SWT.NONE);
-			typeFrequencyColumn.setText(TXMCoreMessages.common_frequency + " " + SpecificitiesUIMessages.SpecificitiesTableEditor_11 + " " + this.getResult().getCorpusSize()); //$NON-NLS-1$ //$NON-NLS-2$
-			typeFrequencyColumn.setToolTipText(typeFrequencyColumn.getText()); 
-			typeFrequencyColumn.setAlignment(SWT.RIGHT);
-			typeFrequencyColumn.pack();
-			
+			this.typeFrequencyColumn = new TableColumn(viewer.getTable(), SWT.NONE);
 			viewerComparator.addSelectionAdapter(viewer, typeFrequencyColumn, 1);
 			
 			
@@ -172,41 +169,8 @@
 			TableColumn separatorColumn = new TableColumn(specificitesTable, SWT.NONE);
 			separatorColumn.setResizable(false);
 
-			String[] partNames = null;
-			int[] partSize = null;
-			try {
-				partNames = this.getResult().getPartShortNames();
-				partSize = this.getResult().getPartSizes();
-			} catch (StatException e) {
-				System.err.println(NLS.bind(RCoreMessages.error_unexpectedErrorInRStatisticsEngine, e));
-				Log.printStackTrace(e);
-				return;
-			}
-			// System.out.println("partnames: "+Arrays.toString(partNames));
-			for (int i = 0, columnIndex = 2; i < partNames.length ; i++) { // for each part
 
-				//FREQ COLUMN
-				final TableColumn freqpartTableColumn = new TableColumn(specificitesTable, SWT.NONE);
-				freqpartTableColumn.setText(partNames[i] + " t=" + partSize[i]); //$NON-NLS-1$ 
-				freqpartTableColumn.setToolTipText(partNames[i] + " t=" + partSize[i]); //$NON-NLS-1$ 
-				// System.out.println("create column "+partNames[i]);
-				freqpartTableColumn.setAlignment(SWT.RIGHT);
-				freqpartTableColumn.pack();
-				
-				viewerComparator.addSelectionAdapter(viewer, freqpartTableColumn, ++columnIndex);
 
-				//SCORE COLUMN
-				final TableColumn partTableColumn = new TableColumn(specificitesTable, SWT.NONE);
-				partTableColumn.setText("score");//partNames[i] + " t=" + partSize[i]); //$NON-NLS-1$ 
-				partTableColumn.setToolTipText(partNames[i] + " t=" + partSize[i]); //$NON-NLS-1$ 
-				// System.out.println("create column "+partNames[i]);
-				partTableColumn.setAlignment(SWT.RIGHT);
-				partTableColumn.pack();
-
-				viewerComparator.addSelectionAdapter(viewer, partTableColumn, ++columnIndex);
-				
-			}
-
 			specificitesTable.setHeaderVisible(true);
 
 			// Horizontal bar on second table takes up a little extra space.
@@ -237,6 +201,49 @@
 	@Override
 	public void updateEditorFromResult(boolean update) {
 		try {
+			if(!update)	{
+				typeFrequencyColumn.setText(TXMCoreMessages.common_frequency + " " + SpecificitiesUIMessages.SpecificitiesTableEditor_11 + " " + this.getResult().getCorpusSize()); //$NON-NLS-1$ //$NON-NLS-2$
+				typeFrequencyColumn.setToolTipText(typeFrequencyColumn.getText()); 
+				typeFrequencyColumn.setAlignment(SWT.RIGHT);
+				typeFrequencyColumn.pack();
+				
+				String[] partNames = null;
+				int[] partSize = null;
+				try {
+					partNames = this.getResult().getPartShortNames();
+					partSize = this.getResult().getPartSizes();
+				} catch (StatException e) {
+					System.err.println(NLS.bind(RCoreMessages.error_unexpectedErrorInRStatisticsEngine, e));
+					Log.printStackTrace(e);
+					return;
+				}
+				// System.out.println("partnames: "+Arrays.toString(partNames));
+				for (int i = 0, columnIndex = 2; i < partNames.length ; i++) { // for each part
+
+					//FREQ COLUMN
+					final TableColumn freqpartTableColumn = new TableColumn(specificitesTable, SWT.NONE);
+					freqpartTableColumn.setText(partNames[i] + " t=" + partSize[i]); //$NON-NLS-1$ 
+					freqpartTableColumn.setToolTipText(partNames[i] + " t=" + partSize[i]); //$NON-NLS-1$ 
+					// System.out.println("create column "+partNames[i]);
+					freqpartTableColumn.setAlignment(SWT.RIGHT);
+					freqpartTableColumn.pack();
+					
+					viewerComparator.addSelectionAdapter(viewer, freqpartTableColumn, ++columnIndex);
+
+					//SCORE COLUMN
+					final TableColumn partTableColumn = new TableColumn(specificitesTable, SWT.NONE);
+					partTableColumn.setText("score");//partNames[i] + " t=" + partSize[i]); //$NON-NLS-1$ 
+					partTableColumn.setToolTipText(partNames[i] + " t=" + partSize[i]); //$NON-NLS-1$ 
+					// System.out.println("create column "+partNames[i]);
+					partTableColumn.setAlignment(SWT.RIGHT);
+					partTableColumn.pack();
+
+					viewerComparator.addSelectionAdapter(viewer, partTableColumn, ++columnIndex);
+					
+				}
+			}
+
+			
 			// units
 			String[] typeNames = getResult().getTypeNames();
 			// units' total freq
