diff --git a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionSearchSpecifications.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionSearchSpecifications.java
index 377f6c1aa0684bfe3d08e4e20635a0ec372f49ae..e01e139db02e597096ca78897230c2df6b4e857a 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionSearchSpecifications.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionSearchSpecifications.java
@@ -2,6 +2,8 @@ package de.deadlocker8.budgetmaster.transactions;
 
 import de.deadlocker8.budgetmaster.categories.Category;
 import de.deadlocker8.budgetmaster.search.Search;
+import de.deadlocker8.budgetmaster.tags.Tag;
+import de.deadlocker8.budgetmaster.tags.Tag_;
 import org.springframework.data.jpa.domain.Specification;
 
 import javax.persistence.criteria.Join;
@@ -35,11 +37,11 @@ public class TransactionSearchSpecifications
 				predicates.add(builder.like(builder.lower(categoryJoin.get("name").as(String.class)), pattern));
 			}
 
-//			if(search.isSearchTags())
-//			{
-//				Join<Transaction, Tag> tagJoin = transaction.join(Transaction_.tags, JoinType.INNER);
-//				predicates.add(builder.like(builder.lower(tagJoin.get(Tag_.name)), pattern));
-//			}
+			if(search.isSearchTags())
+			{
+				final Join<Transaction, Tag> tagJoin = transaction.join(Transaction_.tags, JoinType.LEFT);
+				predicates.add(builder.like(builder.lower(tagJoin.get(Tag_.name).as(String.class)), pattern));
+			}
 
 			query.orderBy(builder.desc(transaction.get(Transaction_.date)));
 			Predicate[] predicatesArray = new Predicate[predicates.size()];
diff --git a/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionSearchSpecificationsTest.java b/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionSearchSpecificationsTest.java
index a6f7dea4b8abd6b3f4588121a73565da3230f855..bcf35a0b4b74010347dc0e58e08e0aee8cbc69ff 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionSearchSpecificationsTest.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionSearchSpecificationsTest.java
@@ -237,4 +237,30 @@ public class TransactionSearchSpecificationsTest
 		List<Transaction> results = transactionRepository.findAll(spec);
 		assertEquals(0, results.size());
 	}
+
+	@Test
+	public void getMatches_SearchTagsEquals()
+	{
+		Search search = new Search("MyAwesomeTag", false, false, false,true, 0);
+		Specification spec = TransactionSearchSpecifications.withDynamicQuery(search);
+
+		List<Transaction> results = transactionRepository.findAll(spec);
+		assertTrue(results.contains(transaction1));
+		assertFalse(results.contains(transaction2));
+		assertFalse(results.contains(repeatingTransaction));
+		assertFalse(results.contains(transferTransaction));
+	}
+
+	@Test
+	public void getMatches_SearchTagsLike()
+	{
+		Search search = new Search("Awesome", false, false, false,true, 0);
+		Specification spec = TransactionSearchSpecifications.withDynamicQuery(search);
+
+		List<Transaction> results = transactionRepository.findAll(spec);
+		assertTrue(results.contains(transaction1));
+		assertFalse(results.contains(transaction2));
+		assertFalse(results.contains(repeatingTransaction));
+		assertFalse(results.contains(transferTransaction));
+	}
 }
\ No newline at end of file