Index: TXM/trunk/org.txm.tigersearch.rcp/src/org/txm/function/tigersearch/TIGERSearch.java
===================================================================
--- TXM/trunk/org.txm.tigersearch.rcp/src/org/txm/function/tigersearch/TIGERSearch.java	(revision 3317)
+++ TXM/trunk/org.txm.tigersearch.rcp/src/org/txm/function/tigersearch/TIGERSearch.java	(revision 3318)
@@ -85,14 +85,17 @@
 	}
 	
 	public boolean isComputed() {
+		
 		return tsresult != null;
 	}
 	
 	public boolean isDrawn() {
+		
 		return tsresult != null && T != null && NT != null;
 	}
 	
 	public boolean toSVG(File svgFile, int sent, int sub, String T, String NT) {
+		
 		if (tsresult == null) return false; // no result
 		this.T = T;
 		this.NT = NT;
Index: TXM/trunk/org.txm.tigersearch.rcp/src/org/txm/searchengine/ts/TIGERSearchEngine.java
===================================================================
--- TXM/trunk/org.txm.tigersearch.rcp/src/org/txm/searchengine/ts/TIGERSearchEngine.java	(revision 3317)
+++ TXM/trunk/org.txm.tigersearch.rcp/src/org/txm/searchengine/ts/TIGERSearchEngine.java	(revision 3318)
@@ -20,6 +20,7 @@
 import org.txm.objects.Project;
 import org.txm.searchengine.core.EmptySelection;
 import org.txm.searchengine.core.IQuery;
+import org.txm.searchengine.core.Query;
 import org.txm.searchengine.core.SearchEngine;
 import org.txm.searchengine.core.SearchEngineProperty;
 import org.txm.searchengine.core.Selection;
@@ -263,7 +264,7 @@
 	}
 	
 	@Override
-	public IQuery newQuery() {
+	public Query newQuery() {
 		return new TIGERQuery();
 	}
 	
Index: TXM/trunk/org.txm.index.rcp/src/org/txm/index/rcp/handlers/SendIndexTo.java
===================================================================
--- TXM/trunk/org.txm.index.rcp/src/org/txm/index/rcp/handlers/SendIndexTo.java	(revision 3317)
+++ TXM/trunk/org.txm.index.rcp/src/org/txm/index/rcp/handlers/SendIndexTo.java	(revision 3318)
@@ -62,7 +62,7 @@
 	public String createQueries(ExecutionEvent event, ISelection selection) {
 		if (selection instanceof StructuredSelection) {
 			StructuredSelection sselection = (StructuredSelection) selection;
-			return CQLQuery.serialize(Index.createQueries(sselection.toList()));
+			return CQLQuery.queriesToString(Index.createQueries(sselection.toList()));
 		}
 		return null;
 	}
Index: TXM/trunk/org.txm.progression.rcp/src/org/txm/progression/rcp/editors/ProgressionEditor.java
===================================================================
--- TXM/trunk/org.txm.progression.rcp/src/org/txm/progression/rcp/editors/ProgressionEditor.java	(revision 3317)
+++ TXM/trunk/org.txm.progression.rcp/src/org/txm/progression/rcp/editors/ProgressionEditor.java	(revision 3318)
@@ -130,14 +130,9 @@
 	@Parameter(key = ProgressionPreferences.REPEAT_SAME_VALUES)
 	protected Button repeatSameValues;
 	
-	
-	
-	
-	
 	@Override
 	public void __createPartControl() {
 		
-		
 		// FIXME: tests to use Fields editor and ScopedPreferenceStore for command parameters
 		// BooleanFieldEditor field = new BooleanFieldEditor(ChartsEnginePreferences.SHOW_TITLE, "test2 show title store", editor.getParametersComposite());
 		// field.setPreferenceStore(new TXMPreferenceStore(TXMPreferences.getId(progression)));
Index: TXM/trunk/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/query/CQLQuery.java
===================================================================
--- TXM/trunk/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/query/CQLQuery.java	(revision 3317)
+++ TXM/trunk/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/query/CQLQuery.java	(revision 3318)
@@ -100,44 +100,6 @@
 	}
 	
 	/**
-	 * Converts the specified string to a list of Query.
-	 * Input string must contains queries separated by a tabulation.
-	 * 
-	 * @param str
-	 * @return
-	 */
-	public static List<CQLQuery> unserialize(String str) {
-		ArrayList<CQLQuery> queries = new ArrayList<>();
-		if (str == null || str.length() == 0) {
-			return queries;
-		}
-		String[] split = str.split(TXMPreferences.LIST_SEPARATOR);
-		for (String s : split) {
-			queries.add(new CQLQuery(s));
-		}
-		return queries;
-	}
-	
-	
-	/**
-	 * Converts the specified list of Query to a string.
-	 * Queries strings are separated by a tabulation.
-	 * 
-	 * @param queries
-	 * @return
-	 */
-	public static String serialize(List<CQLQuery> queries) {
-		String str = ""; //$NON-NLS-1$
-		for (int i = 0; i < queries.size(); i++) {
-			if (i > 0) {
-				str += TXMPreferences.LIST_SEPARATOR;
-			}
-			str += queries.get(i).getQueryString();
-		}
-		return str;
-	}
-	
-	/**
 	 * Creates a readable formated string from the query.
 	 * 
 	 * @return
Index: TXM/trunk/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/CQPSearchEngine.java
===================================================================
--- TXM/trunk/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/CQPSearchEngine.java	(revision 3317)
+++ TXM/trunk/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/CQPSearchEngine.java	(revision 3318)
@@ -14,6 +14,7 @@
 import org.txm.objects.Match;
 import org.txm.searchengine.core.EmptySelection;
 import org.txm.searchengine.core.IQuery;
+import org.txm.searchengine.core.Query;
 import org.txm.searchengine.core.SearchEngine;
 import org.txm.searchengine.core.SearchEngineProperty;
 import org.txm.searchengine.core.Selection;
@@ -439,7 +440,7 @@
 	}
 	
 	@Override
-	public IQuery newQuery() {
+	public Query newQuery() {
 		return new CQLQuery(""); //$NON-NLS-1$
 	}
 	
Index: TXM/trunk/org.txm.searchengine.core/src/org/txm/searchengine/core/SearchEngine.java
===================================================================
--- TXM/trunk/org.txm.searchengine.core/src/org/txm/searchengine/core/SearchEngine.java	(revision 3317)
+++ TXM/trunk/org.txm.searchengine.core/src/org/txm/searchengine/core/SearchEngine.java	(revision 3318)
@@ -21,7 +21,7 @@
 	
 	public abstract Selection query(CorpusBuild corpus, IQuery query, String name, boolean saveQuery) throws Exception;
 	
-	public abstract IQuery newQuery();
+	public abstract Query newQuery();
 
 	/**
 	 * 
Index: TXM/trunk/org.txm.searchengine.core/src/org/txm/searchengine/core/Query.java
===================================================================
--- TXM/trunk/org.txm.searchengine.core/src/org/txm/searchengine/core/Query.java	(revision 3317)
+++ TXM/trunk/org.txm.searchengine.core/src/org/txm/searchengine/core/Query.java	(revision 3318)
@@ -31,6 +31,7 @@
 import java.util.List;
 
 import org.txm.core.preferences.TXMPreferences;
+import org.txm.utils.logger.Log;
 
 /**
  * Implements a SearchEngine generic query with a query and a search engine.
@@ -53,36 +54,50 @@
 	 */
 	public static String queriesToString(List<Query> queries) {
 		if (queries == null) return "";
-		String str = "";
+		StringBuilder str = new StringBuilder();
 		for (int i = 0; i < queries.size(); i++) {
 			if (i > 0) {
-				str += TXMPreferences.LIST_SEPARATOR;
+				str.append(TXMPreferences.LIST_SEPARATOR);
 			}
-			str += queries.get(i).getQueryString();
-			str += TXMPreferences.LIST_SEPARATOR + queries.get(i).getSearchEngine().getName();
+			Query q = queries.get(i);
+			str.append(q.getQueryString());
+			str.append(TXMPreferences.LIST_SEPARATOR + q.getSearchEngine().getName());
 		}
-		return str;
+		return str.toString();
 	}
-	
+			
 	/**
 	 * Converts the specified string to a list of Query.
 	 * Input string must contains queries separated by a tabulation.
 	 * 
+	 * A query is composed of a engine name + tabulation + query
+	 * 
+	 * if the String list is odd, the 
+	 * 
 	 * @param str
 	 * @return
 	 */
 	public static List<Query> stringToQueries(String str) {
+		
 		ArrayList<Query> queries = new ArrayList<>();
 		if (str == null || str.length() == 0) {
 			return queries;
 		}
 		String[] split = str.split(TXMPreferences.LIST_SEPARATOR);
-		for (int i = 0; i + 1 < split.length; i = i + 2) {
-			String s = split[i];
-			String eName = split[i];
-			SearchEngine e = SearchEnginesManager.getSearchEngine(eName);
-			queries.add(new Query(s, e));
-		}
+			
+			for (int i = 0; i + 1 < split.length; i = i + 2) {
+				String s = split[i];
+				String eName = split[i+1];
+				SearchEngine e = SearchEnginesManager.getSearchEngine(eName);
+				if (e == null) {
+					Log.warning("Error: unknown search engine: "+eName);
+					continue;
+				}
+				
+				Query q = e.newQuery();
+				q.setQuery(s);
+				queries.add(q);
+			}
 		return queries;
 	}
 	
@@ -227,4 +242,19 @@
 	public String toString() {
 		return queryString;
 	}
+
+	public static Object toPrettyString(List<Query> queries) {
+		
+		if (queries == null) return "";
+		StringBuilder str = new StringBuilder();
+		for (int i = 0; i < queries.size(); i++) {
+			if (i > 0) {
+				str.append(TXMPreferences.LIST_SEPARATOR);
+			}
+			Query q = queries.get(i);
+			str.append(q.getQueryString());
+			str.append(TXMPreferences.LIST_SEPARATOR + q.getSearchEngine().getName());
+		}
+		return str.toString();
+	}
 }
Index: TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/search/URSSearchEngine.java
===================================================================
--- TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/search/URSSearchEngine.java	(revision 3317)
+++ TXM/trunk/org.txm.analec.rcp/src/org/txm/annotation/urs/search/URSSearchEngine.java	(revision 3318)
@@ -12,6 +12,7 @@
 import org.txm.objects.CorpusBuild;
 import org.txm.objects.Match;
 import org.txm.searchengine.core.IQuery;
+import org.txm.searchengine.core.Query;
 import org.txm.searchengine.core.SearchEngine;
 import org.txm.searchengine.core.SearchEngineProperty;
 import org.txm.searchengine.core.Selection;
@@ -266,7 +267,7 @@
 	}
 	
 	@Override
-	public IQuery newQuery() {
+	public Query newQuery() {
 		return new URSQuery();
 	}
 
Index: TXM/trunk/org.txm.libs.batik/META-INF/MANIFEST.MF
===================================================================
--- TXM/trunk/org.txm.libs.batik/META-INF/MANIFEST.MF	(revision 3317)
+++ TXM/trunk/org.txm.libs.batik/META-INF/MANIFEST.MF	(revision 3318)
@@ -196,7 +196,7 @@
  org.xml.sax.ext,
  org.xml.sax.helpers
 Bundle-Name: Batik
-Bundle-Version: 0
+Bundle-Version: 1.14
 Bundle-ClassPath: .,
  batik-anim-1.14.jar,
  batik-awt-util-1.14.jar,
Index: TXM/trunk/org.txm.progression.core/src/org/txm/progression/core/functions/Progression.java
===================================================================
--- TXM/trunk/org.txm.progression.core/src/org/txm/progression/core/functions/Progression.java	(revision 3317)
+++ TXM/trunk/org.txm.progression.core/src/org/txm/progression/core/functions/Progression.java	(revision 3318)
@@ -205,7 +205,6 @@
 			}
 		}
 		
-		
 		// generate the chart type according to cumulative boolean preference
 		if (!this.getBooleanParameterValue(ProgressionPreferences.CHART_CUMULATIVE)) {
 			this.chartType = Progression.DENSITY_CHART_TYPE;
@@ -478,7 +477,7 @@
 				monitor.worked(1);
 			}
 		}
-		return npositions > 0;
+		return true;
 	}
 	
 	/**
@@ -848,7 +847,7 @@
 	
 	@Override
 	public String getComputingStartMessage() {
-		return TXMCoreMessages.bind(ProgressionCoreMessages.progressionOfP0InTheP1Corpus, Query.queriesToString(this.queries), this.getCorpus().getName());
+		return TXMCoreMessages.bind(ProgressionCoreMessages.progressionOfP0InTheP1Corpus, Query.toPrettyString(this.queries), this.getCorpus().getName());
 	}
 	
 	
