diff --git a/service/src/main/java/lcsb/mapviewer/services/search/ElementMatcher.java b/service/src/main/java/lcsb/mapviewer/services/search/ElementMatcher.java
index c947104992856bb393f310779a596aae011ba27f..1e01f40e07ec338fd685ea16271578579d6fa1d2 100644
--- a/service/src/main/java/lcsb/mapviewer/services/search/ElementMatcher.java
+++ b/service/src/main/java/lcsb/mapviewer/services/search/ElementMatcher.java
@@ -103,8 +103,17 @@ public class ElementMatcher {
 				return false;
 			case OTHER:
 				// in other case just compare names
-				String name = target.getGenes().get(0).getResource();
-				return element.getName().equalsIgnoreCase(name);
+				String targetName = null;
+				if (target.getGenes().size() > 0) {
+					targetName = target.getGenes().get(0).getResource();
+				}
+				if (targetName == null) {
+					targetName = target.getName();
+				}
+				if (targetName == null) {
+					return false;
+				}
+				return element.getName().equalsIgnoreCase(targetName);
 			default:
 				throw new InvalidArgumentException("Unknown drug target type: " + target.getType());
 		}
diff --git a/service/src/test/java/lcsb/mapviewer/services/search/AllSearchTests.java b/service/src/test/java/lcsb/mapviewer/services/search/AllSearchTests.java
index 0073cd477c59c7639df3b1bd57795fbf69a7b87d..512a3b462cb76482a560273f03114acb946038b1 100644
--- a/service/src/test/java/lcsb/mapviewer/services/search/AllSearchTests.java
+++ b/service/src/test/java/lcsb/mapviewer/services/search/AllSearchTests.java
@@ -13,7 +13,8 @@ import lcsb.mapviewer.services.search.layout.AllSearchLayoutTests;
 @SuiteClasses({ AllCommentTests.class, //
 		AllSearchDbTests.class, //
 		AllSearchDataTests.class, //
-		AllSearchLayoutTests.class,//
+		AllSearchLayoutTests.class, //
+		ElementMatcherTest.class, //
 })
 public class AllSearchTests {
 
diff --git a/service/src/test/java/lcsb/mapviewer/services/search/SearchResultFactoryTest.java b/service/src/test/java/lcsb/mapviewer/services/search/ElementMatcherTest.java
similarity index 66%
rename from service/src/test/java/lcsb/mapviewer/services/search/SearchResultFactoryTest.java
rename to service/src/test/java/lcsb/mapviewer/services/search/ElementMatcherTest.java
index 7a310be346eede812e93543470d29662e40af3fc..c34aa859e2cda767baf89001ebd4062493888e17 100644
--- a/service/src/test/java/lcsb/mapviewer/services/search/SearchResultFactoryTest.java
+++ b/service/src/test/java/lcsb/mapviewer/services/search/ElementMatcherTest.java
@@ -1,60 +1,68 @@
-package lcsb.mapviewer.services.search;
-
-import static org.junit.Assert.assertTrue;
-
-import org.apache.log4j.Logger;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-
-import lcsb.mapviewer.annotation.data.Chemical;
-import lcsb.mapviewer.annotation.data.Target;
-import lcsb.mapviewer.model.map.MiriamData;
-import lcsb.mapviewer.model.map.MiriamType;
-import lcsb.mapviewer.model.map.species.Element;
-import lcsb.mapviewer.model.map.species.Rna;
-import lcsb.mapviewer.services.ServiceTestFunctions;
-import lcsb.mapviewer.services.search.comment.FullCommentViewFactory;
-import lcsb.mapviewer.services.search.db.DbSearchCriteria;
-import lcsb.mapviewer.services.search.db.chemical.IChemicalService;
-
-public class SearchResultFactoryTest extends ServiceTestFunctions {
-
-	Logger							logger = Logger.getLogger(SearchResultFactoryTest.class);
-
-	@Autowired
-	FullCommentViewFactory	factory;
-
-	@Autowired
-	IChemicalService		chemicalService;
-
-	@Before
-	public void setUp() throws Exception {
-	}
-
-	@After
-	public void tearDown() throws Exception {
-	}
-
-	@Test
-	public void testElementMatch() {
-		String geneName = "GDNF";
-		Chemical view = chemicalService.getByName("Amphetamine", new DbSearchCriteria().disease(new MiriamData(MiriamType.MESH_2012, "D010300")));
-		Target target = null;
-		for (Target t : view.getInferenceNetwork()) {
-			for (MiriamData row : t.getGenes()) {
-				if (row.getResource().equals(geneName)) {
-					target = t;
-				}
-			}
-		}
-
-		Element element = new Rna("id");
-		element.setName(geneName);
-
-		assertTrue(factory.elementMatch(target, element));
-
-	}
-
-}
+package lcsb.mapviewer.services.search;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import lcsb.mapviewer.annotation.data.Chemical;
+import lcsb.mapviewer.annotation.data.Target;
+import lcsb.mapviewer.annotation.data.TargetType;
+import lcsb.mapviewer.model.map.MiriamData;
+import lcsb.mapviewer.model.map.MiriamType;
+import lcsb.mapviewer.model.map.species.Element;
+import lcsb.mapviewer.model.map.species.GenericProtein;
+import lcsb.mapviewer.model.map.species.Rna;
+import lcsb.mapviewer.services.ServiceTestFunctions;
+import lcsb.mapviewer.services.search.db.DbSearchCriteria;
+
+public class ElementMatcherTest extends ServiceTestFunctions {
+
+	@Autowired
+	ElementMatcher elementMatcher;
+
+	@AfterClass
+	public static void tearDownAfterClass() throws Exception {
+	}
+
+	@Before
+	public void setUp() throws Exception {
+	}
+
+	@After
+	public void tearDown() throws Exception {
+	}
+
+	@Test
+	public void testMatchOther() {
+		Target target = new Target();
+
+		target.setType(TargetType.OTHER);
+		assertFalse(elementMatcher.elementMatch(target, new GenericProtein("s1")));
+	}
+
+	@Test
+	public void testElementMatch() {
+		String geneName = "GDNF";
+		Chemical view = chemicalService.getByName("Amphetamine", new DbSearchCriteria().disease(new MiriamData(MiriamType.MESH_2012, "D010300")));
+		Target target = null;
+		for (Target t : view.getInferenceNetwork()) {
+			for (MiriamData row : t.getGenes()) {
+				if (row.getResource().equals(geneName)) {
+					target = t;
+				}
+			}
+		}
+
+		Element element = new Rna("id");
+		element.setName(geneName);
+
+		assertTrue(elementMatcher.elementMatch(target, element));
+
+	}
+
+}