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 1135)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java	(revision 1136)
@@ -498,10 +498,10 @@
 		
 		boolean dirty = false;
 		
-		if (this.getResult() != null) {
-			// if the result has never been computed, the editor is not dirty ->  no * shown
-			dirty = this.getResult().isDirty() && this.getResult().hasBeenComputedOnce();
-		}
+//		if (this.getResult() != null) { //TODO see what to do with dirty results in TXMEditor
+//			// if the result has never been computed, the editor is not dirty ->  no * shown
+//			//dirty = this.getResult().isDirty() && this.getResult().hasBeenComputedOnce();
+//		}
 		
 		
 		for (TXMEditorExtension<T> b : extensions) {
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 1135)
+++ tmp/org.txm.core/src/java/org/txm/core/results/TXMResult.java	(revision 1136)
@@ -682,6 +682,9 @@
 	 */
 	public void setDirty() {
 		this.dirty = true;
+		for (TXMResult c : getChildren()) {
+			c.setDirty();
+		}
 	}
 
 
@@ -1676,7 +1679,7 @@
 	 * @throws Exception
 	 */
 	public boolean compute(IProgressMonitor monitor) throws Exception {
-		return this.compute(monitor, false);
+		return this.compute(monitor, true);
 	}
 
 
@@ -1774,20 +1777,27 @@
 			this.dirty = false; // the computing was successful, the result is no more dirty
 			this.hasBeenComputedOnce = true; 
 			Log.finest("TXMResult.compute(): " + this.getClass().getSimpleName() + ": computing of result type " + this.getClass() + " done.");
-		}
-		
-		// Children cascade computing
-		if (deepComputing && !skipComputing) {
-
-			Log.finest("TXMResult.compute(): " + this.getClass().getSimpleName() + ": cascade computing of " + this.children.size() + " children.");
-
+			
 			for (int i = 0; i < this.children.size(); i++) {
-				// FIXME: may be better to add a member needFullRecomputing in TXMResult?
 				this.getChild(i).setDirty(); // force recomputing even if some parameters of the result itself have not changed
-				//this.getChild(i).setHasBeenComputedOnce(false); // force recomputing even if some parameters of the result itself have not changed
-				this.getChild(i).compute(monitor, deepComputing, updateLastParameters);
 			}
+			
+			// Children cascade computing
+			if (deepComputing) {
+
+				Log.finest("TXMResult.compute(): " + this.getClass().getSimpleName() + ": cascade computing of " + this.children.size() + " children.");
+
+				for (TXMResult child : getChildren()) {
+					// FIXME: may be better to add a member needFullRecomputing in TXMResult?
+//					this.getChild(i).setDirty(); // force recomputing even if some parameters of the result itself have not changed
+					//this.getChild(i).setHasBeenComputedOnce(false); // force recomputing even if some parameters of the result itself have not changed
+					if (child.hasBeenComputedOnce()) {
+						child.compute(monitor, deepComputing, updateLastParameters);
+					}
+				}
+			}
 		}
+			
 
 		return true;
 	}
@@ -1995,6 +2005,8 @@
 
 	/**
 	 * Gets a boolean state defining if the result has already been computed at least once or not.
+	 * 
+	 * true if the result has already been lazy LOADED...........
 	 * @return
 	 */
 	public boolean hasBeenComputedOnce() {
Index: tmp/org.txm.partition.core/src/org/txm/partition/core/functions/PartitionDimensions.java
===================================================================
--- tmp/org.txm.partition.core/src/org/txm/partition/core/functions/PartitionDimensions.java	(revision 1135)
+++ tmp/org.txm.partition.core/src/org/txm/partition/core/functions/PartitionDimensions.java	(revision 1136)
@@ -90,9 +90,9 @@
 	protected boolean _compute() throws Exception {
 		// parts
 		this.parts = this.getPartition().getParts();
-		for (Part part : parts) {
-			part.compute();
-		}
+//		for (Part part : parts) { // no more needed since TXMResult.compute is deep computing
+//			part.compute();
+//		}
 		
 		// parts sorted by size 
 		List<Part> sortedParts = new ArrayList<Part>(this.parts);
