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 997)
+++ tmp/org.txm.core/src/java/org/txm/core/preferences/TXMPreferences.java	(revision 998)
@@ -85,8 +85,9 @@
 	public final static String RESULT_UUID = "result_uuid"; //$NON-NLS-1$
 	public final static String PARENT_UUID = "parent_uuid"; //$NON-NLS-1$
 	public final static String BUNDLE_ID = "bundle_id"; //$NON-NLS-1$
-	public final static String NAME = "name"; //$NON-NLS-1$
-
+	public final static String USER_NAME = "user_name"; //$NON-NLS-1$
+	public final static String LAZY_NAME = "lazy_name"; //$NON-NLS-1$
+	
 	// to shared strings in some command preferences
 	/**
 	 * Queries.
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 997)
+++ tmp/org.txm.core/src/java/org/txm/core/results/TXMResult.java	(revision 998)
@@ -102,9 +102,16 @@
 	protected boolean visible;
 
 	/**
-	 * The user name. To rename a result but also to store the simple name for unserialization and lazy loading.
+	 * The user name (to rename a result).
 	 */
 	protected String userName;
+	
+	
+	/**
+	 *  To store the simple name for unserialization and lazy loading.
+	 */
+	protected String lazyName;
+	
 
 	/**
 	 * The command preferences node qualifier.
@@ -205,10 +212,16 @@
 		}
 
 		// retrieving user name
-		if (!this.getStringParameterValue(TXMPreferences.NAME).isEmpty()) {
-			this.userName = this.getStringParameterValue(TXMPreferences.NAME);
+		if (!this.getStringParameterValue(TXMPreferences.USER_NAME).isEmpty()) {
+			this.userName = this.getStringParameterValue(TXMPreferences.USER_NAME);
 		}
 
+		// retrieving lazy name
+		if (!this.getStringParameterValue(TXMPreferences.LAZY_NAME).isEmpty()) {
+			this.lazyName = this.getStringParameterValue(TXMPreferences.LAZY_NAME);
+		}
+
+		
 		// loads parameters from local result node, current command preferences or default command preferences
 		try {
 			this.autoLoadParametersFromAnnotations(); // auto fill from Parameter annotations
@@ -723,9 +736,13 @@
 
 		// internal data to save for unserialization
 		this.saveParameter("class", this.getClass().getName()); //$NON-NLS-1$
-		// store the user name if exists it otherwise the simple name (to display something at reloading otherwise the simple name can leads to error because the result is not computed until it will be reopen)
-		this.saveParameter(TXMPreferences.NAME, this.getUserOrSimpleName());
+		// store the user name if exists, otherwise the simple name as lazy name (to display something at reloading otherwise the simple name can leads to error because the result is not computed until it will be reopen)
+		if(this.userName != null)	{
+			this.saveParameter(TXMPreferences.USER_NAME, this.userName);	
+		}
+		this.saveParameter(TXMPreferences.LAZY_NAME, this.getSimpleName());	
 		
+		
 		this.saveParameter(TXMPreferences.RESULT_UUID, this.uniqueID);
 		this.saveParameter(TXMPreferences.BUNDLE_ID, this.preferencesNodeQualifier);
 		if(this.parent != null)	{
@@ -1341,13 +1358,16 @@
 	public abstract String getDetails();
 
 	/**
-	 * Gets the user name if exists otherwise the simple name.
-	 * @return the user name if exists otherwise the simple name
+	 * Gets the user name if exists otherwise, the lazy name if exists, otherwise the simple name.
+	 * @return the user name if exists otherwise, the lazy name if exists, otherwise the simple name
 	 */
-	public String getUserOrSimpleName() {
+	public String getCurrentName() {
 		if(this.userName != null)	{
 			return this.userName;
 		}
+		else if(this.lazyName != null) {
+			return this.lazyName;
+		}
 		else {
 			return this.getSimpleName();	
 		}
@@ -1611,6 +1631,9 @@
 
 		}
 
+		// clear the lazy name, no more needed since the object has been computed and getSimpleName() can now work
+		this.lazyName = null;
+		
 		// store last used parameters
 		if(updateLastParameters)	{
 			this.updateLastParameters();
@@ -1829,4 +1852,11 @@
 	public void setPersistable(boolean persistable) {
 		this.persistable = persistable;
 	}
+
+	/**
+	 * @return the lazyName
+	 */
+	public String getLazyName() {
+		return lazyName;
+	}
 }
Index: tmp/org.txm.core/src/java/org/txm/Toolbox.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/Toolbox.java	(revision 997)
+++ tmp/org.txm.core/src/java/org/txm/Toolbox.java	(revision 998)
@@ -285,10 +285,10 @@
 					Log.finest("Toolbox.initialize(): bundle_id = " + TXMPreferences.getString(TXMPreferences.BUNDLE_ID, nodeQualifier));
 					Bundle bundle = Platform.getBundle(TXMPreferences.getString(TXMPreferences.BUNDLE_ID, nodeQualifier));
 					if (bundle == null) {
-						System.out.println("Warning: can not restore object with bundle name "+TXMPreferences.getString(TXMPreferences.BUNDLE_ID, nodeQualifier));
+						Log.finest("Warning: can not restore object with bundle name " + TXMPreferences.getString(TXMPreferences.BUNDLE_ID, nodeQualifier));
 						continue;
 					}
-					String className = TXMPreferences.getString("class", nodeQualifier);
+					String className = TXMPreferences.getString("class", nodeQualifier); //$NON-NLS-1$
 					Class<?> cl = bundle.loadClass(className);
 					Constructor<?> cons = cl.getConstructor(String.class);
 					cons.newInstance(nodeQualifier);
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 997)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/adapters/TXMResultAdapter.java	(revision 998)
@@ -31,7 +31,7 @@
 	@Override
 	public String getLabel(Object result) {
 		if (result instanceof TXMResult) {
-			return ((TXMResult) result).getUserOrSimpleName();
+			return ((TXMResult) result).getCurrentName();
 		}
 		else {
 			return result.toString();
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 997)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/debug/TXMResultDebugView.java	(revision 998)
@@ -105,6 +105,7 @@
 		buffer.append("UUID: " + this.currentResult.getUUID() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
 		buffer.append("Simple name: " + this.currentResult.getSimpleName() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
 		buffer.append("User name: " + this.currentResult.getUserName() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
+		buffer.append("Lazy name: " + this.currentResult.getLazyName() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
 		buffer.append("Name: " + this.currentResult.getName() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
 		buffer.append("Valid filename: " + this.currentResult.getValidFileName() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
 		buffer.append("Empty name: " + this.currentResult.getEmptyName() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/function/RenameResult.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/function/RenameResult.java	(revision 997)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/function/RenameResult.java	(revision 998)
@@ -26,7 +26,7 @@
 			final TXMResult r = (TXMResult)first;
 			
 			final IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
-			TextDialog dialog = new TextDialog(window.getShell(), "Rename " + r, "Enter the new name to show in the Corpus view", r.getUserOrSimpleName());
+			TextDialog dialog = new TextDialog(window.getShell(), "Rename " + r, "Enter the new name to show in the Corpus view", r.getCurrentName());
 			if (dialog.open() == TextDialog.OK) {
 				String newName = dialog.getText();
 				if (newName.length() > 0) {
