diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/ModelAnnotator.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/ModelAnnotator.java
index 61c55ec02a04a8b9928b7d7df04d7b1e92594367..c9d17d4db5e3eedd5516a7324f8e34b97079f135 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/ModelAnnotator.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/ModelAnnotator.java
@@ -25,6 +25,7 @@ import lcsb.mapviewer.annotation.services.annotators.GoAnnotator;
 import lcsb.mapviewer.annotation.services.annotators.HgncAnnotator;
 import lcsb.mapviewer.annotation.services.annotators.PdbAnnotator;
 import lcsb.mapviewer.annotation.services.annotators.ReconAnnotator;
+import lcsb.mapviewer.annotation.services.annotators.TairAnnotator;
 import lcsb.mapviewer.annotation.services.annotators.UniprotAnnotator;
 import lcsb.mapviewer.common.IProgressUpdater;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
@@ -124,6 +125,13 @@ public class ModelAnnotator {
 	 */
 	@Autowired
 	private EnsemblAnnotator			 ensemblAnnotator;
+	
+	/**
+	 * TAIR annotator.
+	 */
+	@Autowired
+	private TairAnnotator				tairAnnotator;
+
 
 	/**
 	 * List of all avaliable {@link ElementAnnotator} objects.
@@ -153,6 +161,7 @@ public class ModelAnnotator {
 		addAnnotator(reconAnnotator);
 		addAnnotator(entrezAnnotator);
 		addAnnotator(ensemblAnnotator);
+		addAnnotator(tairAnnotator);
 	}
 
 	/**
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/TairAnnotator.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/TairAnnotator.java
index 06bc49b4c81a186f2fad3cfa9dcbc64b8512fe17..1e07de41fbf3dc3f52cdc0b41726ba66eb2bd4a9 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/TairAnnotator.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/TairAnnotator.java
@@ -1,14 +1,14 @@
 package lcsb.mapviewer.annotation.services.annotators;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
-import java.util.Set;
+import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.log4j.Logger;
-import org.kohsuke.rngom.ast.builder.Annotations;
 
 import lcsb.mapviewer.annotation.cache.GeneralCacheInterface;
 import lcsb.mapviewer.annotation.cache.SourceNotAvailable;
@@ -47,7 +47,7 @@ public class TairAnnotator extends ElementAnnotator implements IExternalService
 	 * Default constructor.
 	 */
 	public TairAnnotator() {
-		super(TairAnnotator.class, new Class[] { Protein.class, Gene.class, Rna.class }, false); //TODO - check with Simone
+		super(TairAnnotator.class, new Class[] { Protein.class, Gene.class, Rna.class }, false);
 	}
 
 	@Override
@@ -75,34 +75,36 @@ public class TairAnnotator extends ElementAnnotator implements IExternalService
 	@Override
 	public void annotateElement(BioEntity object) throws AnnotatorException {
 		if (isAnnotatable(object)) {
-			boolean uniprotFound = false;
+//			boolean uniprotFound = false;
+			List<MiriamData> mdUniProts = new ArrayList<MiriamData>();
 			MiriamData mdTair = null;
 			for (MiriamData md : object.getMiriamData()) {
 				if (md.getDataType().equals(MiriamType.TAIR_LOCUS)) {
 					mdTair = md;
 				}
 				if (md.getDataType().equals(MiriamType.UNIPROT)) {
-					uniprotFound = true;
+					mdUniProts.add(md);
+//					uniprotFound = true;
 				}
 			}
 
-			if (mdTair == null || uniprotFound) {
+			if (mdTair == null /*|| uniprotFound*/) {
 				return;
 			}
 			
 			MiriamData mdUniprot = tairToUniprot(mdTair);			
-			if (mdUniprot != null) {
+			if (mdUniprot != null && mdUniProts.indexOf(mdUniprot) == -1) {
 				object.addMiriamData(mdUniprot);
 			}
 		}		
 	}
 
 	/**
-	 * Returns url to TAIR page about TAIR entry.
+	 * Returns URL to TAIR page about TAIR entry.
 	 * 
 	 * @param tairId
-	 *          tair identifier
-	 * @return url to TAIR page about the TAIR entry
+	 *          TAIR identifier
+	 * @return URL to TAIR page about the TAIR entry
 	 */
 	private String getTairUrl(String tairId) {
 		return "http://arabidopsis.org/servlets/TairObject?type=locus&name=" + tairId;
@@ -147,11 +149,11 @@ public class TairAnnotator extends ElementAnnotator implements IExternalService
 	}
 
 	/**
-	 * Transform tair identifier into uniprot identifier.
+	 * Transform TAIR identifier into uniprot identifier.
 	 * 
 	 * @param tair
-	 *          {@link MiriamData} with tair identifier
-	 * @return {@link MiriamData} with uniprot identifier
+	 *          {@link MiriamData} with TAIR identifier
+	 * @return {@link MiriamData} with UniProt identifier
 	 * @throws UniprotSearchException
 	 *           thrown when there is a problem with accessing external database
 	 */
@@ -180,7 +182,6 @@ public class TairAnnotator extends ElementAnnotator implements IExternalService
 		} catch (IOException exception) {
 			throw new AnnotatorException(exception);
 		}
-
 	}
 
 	@Override
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/TairAnnotatorTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/TairAnnotatorTest.java
index 1f9621829ef0576184b1d327ad4cc7956878a6b3..b2df54d22509010f6934519205c8b00f0869f3f7 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/TairAnnotatorTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/TairAnnotatorTest.java
@@ -69,6 +69,33 @@ public class TairAnnotatorTest extends AnnotationTestFunctions {
 		}
 	}
 	
+	@Test
+	public void testAnnotateExistingUniprot() throws Exception {
+		try {
+
+			Species protein = new GenericProtein("id");
+			protein.setName("bla");
+			protein.addMiriamData(new MiriamData(MiriamType.TAIR_LOCUS, "AT1G15950"));
+			protein.addMiriamData(new MiriamData(MiriamType.UNIPROT, "P32246")); // Human version of the protein
+			
+			tairAnnotator.annotateElement(protein);
+
+			int cntUniProts = 0;
+
+			for (MiriamData md : protein.getMiriamData()) {
+				if (md.getDataType().equals(MiriamType.UNIPROT)) {
+					cntUniProts++;
+				}
+			}
+			
+			assertTrue("No UNIPROT annotation extracted from TAIR annotator", cntUniProts > 1);
+
+		} catch (Exception e) {
+			e.printStackTrace();
+			throw e;
+		}
+	}
+	
 	
 	@Test
 	public void testAnnotateInvalidTair() throws Exception {