diff --git a/src/cds/utils/TextualSearchList.java b/src/cds/utils/TextualSearchList.java
index 8a354e5c9ab1fd8445f3ad1ab4b65ded8dcf5944..dfbff861dff639e2e287660ad31c36893d57ac73 100644
--- a/src/cds/utils/TextualSearchList.java
+++ b/src/cds/utils/TextualSearchList.java
@@ -16,7 +16,8 @@ package cds.utils;
  * You should have received a copy of the GNU Lesser General Public License
  * along with ADQLLibrary.  If not, see <http://www.gnu.org/licenses/>.
  * 
- * Copyright 2012 - UDS/Centre de Données astronomiques de Strasbourg (CDS)
+ * Copyright 2012-2014 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
+ *                       Astronomisches Rechen Institute (ARI)
  */
 
 import java.util.ArrayList;
@@ -37,8 +38,8 @@ import java.util.HashMap;
  * <p><b><u>WARNING:</u> The extracted key MUST be CASE-SENSITIVE and UNIQUE !</b></p>
  * 
  * @param <E>	Type of object to manage in this list.
- * @author 		Gr&eacute;gory Mantelet (CDS)
- * @version 	09/2011
+ * @author 		Gr&eacute;gory Mantelet (CDS;ARI)
+ * @version 	1.1 (11/2013)
  */
 public class TextualSearchList< E > extends ArrayList<E> {
 	private static final long serialVersionUID = 1L;
@@ -140,6 +141,31 @@ public class TextualSearchList< E > extends ArrayList<E> {
 		addAll(c);
 	}
 
+	/**
+	 * Returns true if this list contains the specified element.
+	 * More formally, returns true if and only if this list contains at least one element
+	 * e such that (keyExtractor.getKey(o).equals(keyExtractor.getKey(e))).
+	 * 
+	 * @see java.util.ArrayList#contains(java.lang.Object)
+	 * @see #getKey(Object)
+	 * 
+	 * @since 1.1
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public boolean contains(Object o){
+		try{
+			if (o == null)
+				return false;
+			else{
+				E object = (E)o;
+				return !get(getKey(object)).isEmpty();
+			}
+		}catch(Exception e){
+			return false;
+		}
+	}
+
 	/**
 	 * Searches (CASE-INSENSITIVE) the object which has the given key.
 	 * 
@@ -159,6 +185,7 @@ public class TextualSearchList< E > extends ArrayList<E> {
 	 * 
 	 * @return		All the objects whose the key is the same as the given one.
 	 */
+	@SuppressWarnings("unchecked")
 	public ArrayList<E> get(final String key, final boolean caseSensitive){
 		if (key == null)
 			return new ArrayList<E>(0);
@@ -167,7 +194,7 @@ public class TextualSearchList< E > extends ArrayList<E> {
 		if (founds == null)
 			return new ArrayList<E>(0);
 		else
-			return founds;
+			return (ArrayList<E>)founds.clone();
 	}
 
 	/**
@@ -457,6 +484,7 @@ public class TextualSearchList< E > extends ArrayList<E> {
 	 * @param <E>	Type of object from which a textual key must be extracted.
 	 */
 	protected static class DefaultKeyExtractor< E > implements KeyExtractor<E> {
+		@Override
 		public String getKey(final E obj){
 			return obj.toString();
 		}