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 1413)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/structures/PropertiesComboViewer.java	(revision 1414)
@@ -48,9 +48,9 @@
 		this.updateFromList(properties, selectedProperty);
 
 		// Listener
-		if(autoCompute)	{
-			this.addSelectionChangedListener(new ComputeSelectionListener(editor));
-		}
+		//if(autoCompute)	{
+			this.addSelectionChangedListener(new ComputeSelectionListener(editor, autoCompute));
+		//}
 
 	}
 
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/structures/StructuralUnitPropertiesComboViewer.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/structures/StructuralUnitPropertiesComboViewer.java	(revision 1413)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/structures/StructuralUnitPropertiesComboViewer.java	(revision 1414)
@@ -37,9 +37,9 @@
 		this.updateFromStructuralUnit(su, selectedSUP);
 		
 		// Listener
-		if(autoCompute)	{
-			this.addSelectionChangedListener(new ComputeSelectionListener(editor));
-		}
+		//if(autoCompute)	{
+			this.addSelectionChangedListener(new ComputeSelectionListener(editor, autoCompute));
+		//}
 
 		
 	}
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/structures/StructuralUnitsComboViewer.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/structures/StructuralUnitsComboViewer.java	(revision 1413)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/structures/StructuralUnitsComboViewer.java	(revision 1414)
@@ -52,9 +52,9 @@
 		}
 		
 		// Listeners
-		if(autoCompute)	{
-			this.addSelectionChangedListener(new ComputeSelectionListener(editor));
-		}
+		//if(autoCompute)	{
+			this.addSelectionChangedListener(new ComputeSelectionListener(editor, autoCompute));
+		//}
 
 	}
 
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/adapters/TXMResultAdapter.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/adapters/TXMResultAdapter.java	(revision 1413)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/adapters/TXMResultAdapter.java	(revision 1414)
@@ -8,9 +8,11 @@
 import org.eclipse.swt.graphics.FontData;
 import org.eclipse.swt.graphics.RGB;
 import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.model.WorkbenchAdapter;
 import org.txm.core.preferences.TBXPreferences;
 import org.txm.core.results.TXMResult;
+import org.txm.rcp.editors.TXMEditor;
 import org.txm.rcp.handlers.BaseAbstractHandler;
 import org.txm.rcp.utils.SWTEditorsUtils;
 
@@ -40,9 +42,16 @@
 		// FIXME: SJ: dirty tests
 		String label = ((TXMResult) result).getCurrentName();
 
-		if(((TXMResult) result).isDirty() && ((TXMResult) result).hasBeenComputedOnce())	{
+		IEditorPart editor = SWTEditorsUtils.getEditor((TXMResult) result);
+
+		if(editor != null && editor.isDirty())	{
 			label += " *";
 		}
+		
+		
+//		if(((TXMResult) result).isDirty() && ((TXMResult) result).hasBeenComputedOnce())	{
+//			label += " *";
+//		}
 		return label;
 	}
 
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/CurrentEditorIsDirty.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/CurrentEditorIsDirty.java	(revision 1413)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/CurrentEditorIsDirty.java	(revision 1414)
@@ -32,6 +32,8 @@
 		//System.err.println("Current editor is dirty: " + dirty);
 		
 		return dirty;
+		
+//		return true;
 	}
 
 }
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/utils/SWTEditorsUtils.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/utils/SWTEditorsUtils.java	(revision 1413)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/utils/SWTEditorsUtils.java	(revision 1414)
@@ -17,16 +17,38 @@
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.part.EditorPart;
+import org.txm.core.results.TXMResult;
+import org.txm.rcp.editors.TXMResultEditorInput;
 
 /**
  * Utility class to manage EditorPart.
  * Methods that modify the UI are intended to be called in the UI thread.
+ * 
  * @author sjacquot
  *
  */
 public class SWTEditorsUtils {
 	
+	
 	/**
+	 * Gets an editor for the specified result if its opened.
+	 * @param result
+	 * @return the editor if its opened otherwise null
+	 */
+	public static IEditorPart getEditor(TXMResult result)	{
+
+		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+		IWorkbenchPage page = window.getActivePage();
+//		IEditorReference[] editorsReferences = page.findEditors(editorInput, editorId, IWorkbenchPage.MATCH_INPUT | IWorkbenchPage.MATCH_ID);
+//		if(editorsReferences.length > 0)	{
+//			return editorsReferences[0].getEditor(false);
+//		}
+//		return null;
+
+		return page.findEditor(new TXMResultEditorInput<TXMResult>(result));
+	}
+	
+	/**
 	 * Checks if the editor specified by its editor input is already open in the active page.
 	 * @param editorInput
 	 * @return
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java	(revision 1413)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java	(revision 1414)
@@ -18,7 +18,9 @@
 import org.eclipse.core.runtime.SafeRunner;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.action.IContributionItem;
 import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.ToolBarManager;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.jface.viewers.IStructuredSelection;
@@ -530,8 +532,13 @@
 	public void setDirty(boolean dirty) {
 		this.dirty = dirty;
         
+		// FIXME: old version
 		//this.result.setDirty(dirty);
         
+		ToolBarManager manager = new ToolBarManager(this.topToolBar);
+		IContributionItem[] items = manager.getItems(); 
+
+		
         firePropertyChange(IEditorPart.PROP_DIRTY);
         CorporaView.refreshObject(this.result);
     }
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/listeners/BaseAbstractComputeListener.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/listeners/BaseAbstractComputeListener.java	(revision 1413)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/listeners/BaseAbstractComputeListener.java	(revision 1414)
@@ -22,16 +22,31 @@
 	 */
 	protected TXMEditor<? extends TXMResult> editor;
 	
+	
+	/**
+	 * Auto-computing mode.
+	 */
+	protected boolean autoCompute;
 
 	/**
 	 * 
 	 * @param editor
+	 * @param autoCompute
 	 */
-	public BaseAbstractComputeListener(TXMEditor<? extends TXMResult> editor) {
+	public BaseAbstractComputeListener(TXMEditor<? extends TXMResult> editor, boolean autoCompute) {
 		this.editor = editor;
+		this.autoCompute = autoCompute;
 	}
 
+	/**
+	 * 
+	 * @param editor
+	 */
+	public BaseAbstractComputeListener(TXMEditor<? extends TXMResult> editor) {
+		this(editor, false);
+	}
 	
+	
 	/**
 	 * To skip programmatically setSelection() call. The event source Viewer must set the "ignore" option
 	 * @param event
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 1413)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/listeners/ComputeSelectionListener.java	(revision 1414)
@@ -4,7 +4,6 @@
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Spinner;
 import org.txm.core.results.TXMResult;
 import org.txm.rcp.editors.TXMEditor;
@@ -20,7 +19,16 @@
 	/**
 	 * 
 	 * @param editor
+	 * @param autoCompute
 	 */
+	public ComputeSelectionListener(TXMEditor<? extends TXMResult> editor, boolean autoCompute) {
+		super(editor, autoCompute);
+	}
+
+	/**
+	 * 
+	 * @param editor
+	 */
 	public ComputeSelectionListener(TXMEditor<? extends TXMResult> editor) {
 		super(editor);
 	}
@@ -30,7 +38,7 @@
 		// tests for QueryWidget computing from history
 //		System.err.println("ComputeSelectionListener.widgetSelected() " + ((Combo)e.getSource()).getText());
 		// this method is called on a Spinner even when a key is pressed, that's not what we want, so this test breaks the behavior
-		if(RCPPreferences.getInstance().getBoolean(RCPPreferences.AUTO_UPDATE_EDITOR) && (!(e.getSource() instanceof Spinner) || e.stateMask != 0))	{
+		if((this.autoCompute || RCPPreferences.getInstance().getBoolean(RCPPreferences.AUTO_UPDATE_EDITOR)) && (!(e.getSource() instanceof Spinner) || e.stateMask != 0))	{
 			this.editor.compute(true);
 		}
 		else	{
@@ -57,7 +65,7 @@
 		// FIXME: SJ: dirty tests
 		// to skip programmatically setSelection() calls on some widgets or if auto-compute preference is false
 		if(!mustIgnoreEvent(event)) {
-			if(RCPPreferences.getInstance().getBoolean(RCPPreferences.AUTO_UPDATE_EDITOR))	{
+			if((this.autoCompute || RCPPreferences.getInstance().getBoolean(RCPPreferences.AUTO_UPDATE_EDITOR)))	{
 				this.editor.compute(true);
 			}
 			else	{
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/listeners/ComputeKeyListener.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/listeners/ComputeKeyListener.java	(revision 1413)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/listeners/ComputeKeyListener.java	(revision 1414)
@@ -8,7 +8,6 @@
 import org.eclipse.swt.events.KeyListener;
 import org.txm.core.results.TXMResult;
 import org.txm.rcp.editors.TXMEditor;
-import org.txm.rcp.preferences.RCPPreferences;
 
 /**
  * Key listener that calls TXMEditor.compute() when the Enter key is pressed.
@@ -32,9 +31,9 @@
 		if (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR) {
 			this.editor.compute(true);
 		}
-		// if other key than Return is pressed then makes the editor and result dirty in manual-computing mode
-		else if(!RCPPreferences.getInstance().getBoolean(RCPPreferences.AUTO_UPDATE_EDITOR))	{
-			//this.editor.setDirty(true);
+		// if other key than Return is pressed then makes the editor dirty
+		else	{
+			this.editor.setDirty(true);
 		}
 		// FIXME: update the result from the widget
 		// purpose here is, for example, to enable the compute command button when a query is typed
Index: tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/editors/CAFactorialMapChartEditor.java
===================================================================
--- tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/editors/CAFactorialMapChartEditor.java	(revision 1413)
+++ tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/editors/CAFactorialMapChartEditor.java	(revision 1414)
@@ -126,6 +126,7 @@
 			// Extend the chart editor tool bar
 			new ToolItem(this.chartToolBar, SWT.SEPARATOR);
 
+			ComputeSelectionListener computeSelectionListener = new ComputeSelectionListener(this, true); 
 			
 			// Show/hide columns
 			showIndividuals = new ToolItem(this.chartToolBar, SWT.CHECK);
@@ -133,7 +134,7 @@
 			//showColumns.setText(SWTComponentsProviderMessages.SWTChartsComponentProvider_CA_TOOLBAR_BUTTON_SHOW_COLUMS_LABEL);
 			showIndividuals.setToolTipText(CAUIMessages.showhideTheColumnPoints);
 			showIndividuals.setImage(IImageKeys.getImage(CAFactorialMapChartEditor.class, "icons/show_columns.png")); //$NON-NLS-1$
-			showIndividuals.addSelectionListener(new ComputeSelectionListener(this));
+			showIndividuals.addSelectionListener(computeSelectionListener);
 
 			// Show/hide rows
 			showVariables = new ToolItem(this.chartToolBar, SWT.CHECK);
@@ -141,7 +142,7 @@
 			//this.showRows.setText(SWTComponentsProviderMessages.SWTChartsComponentProvider_CA_TOOLBAR_BUTTON_SHOW_ROWS_LABEL);
 			showVariables.setToolTipText(CAUIMessages.showhideTheRowPoints);
 			showVariables.setImage(IImageKeys.getImage(CAFactorialMapChartEditor.class, "icons/show_rows.png")); //$NON-NLS-1$
-			showVariables.addSelectionListener(new ComputeSelectionListener(this));
+			showVariables.addSelectionListener(computeSelectionListener);
 
 			
 			// Show/hide point shapes
@@ -150,7 +151,7 @@
 			//showPointShapes.setText(CAUIMessages.SHOW_HIDE_POINT_SHAPES);
 			showPointShapes.setToolTipText(CAUIMessages.showhidePointShapes);
 			showPointShapes.setImage(IImageKeys.getImage(CAFactorialMapChartEditor.class, "icons/show_point_shapes.png")); //$NON-NLS-1$
-			showPointShapes.addSelectionListener(new ComputeSelectionListener(this));
+			showPointShapes.addSelectionListener(computeSelectionListener);
 
 			
 			// Factors plane selection
Index: tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/editors/ChartEditor.java
===================================================================
--- tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/editors/ChartEditor.java	(revision 1413)
+++ tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/editors/ChartEditor.java	(revision 1414)
@@ -311,7 +311,9 @@
 	 */
 	public void deactivateContext()	{
 		IContextService contextService = (IContextService)getSite().getService(IContextService.class);
-		contextService.deactivateContext(this.contextActivationToken);
+		if(contextService != null)	{
+			contextService.deactivateContext(this.contextActivationToken);
+		}
 	}
 	
 	/**
Index: tmp/org.txm.partition.rcp/src/org/txm/partition/rcp/editors/PartitionDimensionsEditor.java
===================================================================
--- tmp/org.txm.partition.rcp/src/org/txm/partition/rcp/editors/PartitionDimensionsEditor.java	(revision 1413)
+++ tmp/org.txm.partition.rcp/src/org/txm/partition/rcp/editors/PartitionDimensionsEditor.java	(revision 1414)
@@ -38,7 +38,7 @@
 		this.sortByPartSize.setImage(IImageKeys.getImage(this.getClass(), "icons/silk_sort_by_size.png")); //$NON-NLS-1$
 		this.sortByPartSize.setToolTipText(PartitionUIMessages.sortByPartSize);
 		
-		this.sortByPartSize.addSelectionListener(new ComputeSelectionListener(this));
+		this.sortByPartSize.addSelectionListener(new ComputeSelectionListener(this, true));
 		
 		
 	}
Index: tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/editors/ProgressionEditor.java
===================================================================
--- tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/editors/ProgressionEditor.java	(revision 1413)
+++ tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/editors/ProgressionEditor.java	(revision 1414)
@@ -182,7 +182,7 @@
 			
 			
 			// Computing listeners
-			ComputeSelectionListener computeSelectionListener = new ComputeSelectionListener(this);
+			ComputeSelectionListener computeSelectionListener = new ComputeSelectionListener(this, true);
 			ComputeKeyListener computeKeyListener = new ComputeKeyListener(this);
 			
 			
@@ -249,7 +249,7 @@
 			cumulativeButton = new Button(paramPanel, SWT.RADIO);
 			cumulativeButton.setText(ProgressionUIMessages.cumulative);
 			// listeners
-			cumulativeButton.addSelectionListener(new ComputeSelectionListener(this) {
+			cumulativeButton.addSelectionListener(new ComputeSelectionListener(this, true) {
 				@Override
 				public void widgetSelected(SelectionEvent e) {
 					bandeField.setEnabled(densityButton.getSelection());
@@ -261,7 +261,7 @@
 			densityButton = new Button(paramPanel, SWT.RADIO);
 			densityButton.setText(ProgressionUIMessages.density);
 			// listener
-			densityButton.addSelectionListener(new ComputeSelectionListener(this) {
+			densityButton.addSelectionListener(new ComputeSelectionListener(this, true) {
 				@Override
 				public void widgetSelected(SelectionEvent e) {
 					bandeField.setEnabled(densityButton.getSelection());
Index: tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/editors/SpecificitiesSelectionEditor.java
===================================================================
--- tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/editors/SpecificitiesSelectionEditor.java	(revision 1413)
+++ tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/editors/SpecificitiesSelectionEditor.java	(revision 1414)
@@ -43,7 +43,7 @@
 		
 		
 		// Computing listeners
-		ComputeSelectionListener computeSelectionListener = new ComputeSelectionListener(this);
+		ComputeSelectionListener computeSelectionListener = new ComputeSelectionListener(this, true);
 		ComputeKeyListener computeKeyListener = new ComputeKeyListener(this);
 
 		
Index: tmp/org.txm.ahc.rcp/src/org/txm/ahc/rcp/editors/AHCChartEditor.java
===================================================================
--- tmp/org.txm.ahc.rcp/src/org/txm/ahc/rcp/editors/AHCChartEditor.java	(revision 1413)
+++ tmp/org.txm.ahc.rcp/src/org/txm/ahc/rcp/editors/AHCChartEditor.java	(revision 1414)
@@ -72,7 +72,7 @@
 
 		
 		// Computing listeners
-		ComputeSelectionListener computeSelectionListener = new ComputeSelectionListener(this);
+		ComputeSelectionListener computeSelectionListener = new ComputeSelectionListener(this, true);
 		ComputeKeyListener computeKeyListener = new ComputeKeyListener(this);
 		
 		// Number of clusters
