diff --git a/src/song/TagSongFilter.cxx b/src/song/TagSongFilter.cxx
index 4b587c920..df92ed435 100644
--- a/src/song/TagSongFilter.cxx
+++ b/src/song/TagSongFilter.cxx
@@ -34,13 +34,6 @@ TagSongFilter::ToExpression() const noexcept
 		+ " \"" + EscapeFilterString(filter.GetValue()) + "\")";
 }
 
-bool
-TagSongFilter::Match(const TagItem &item) const noexcept
-{
-	return (type == TAG_NUM_OF_ITEM_TYPES || item.type == type) &&
-		filter.Match(item.value);
-}
-
 bool
 TagSongFilter::Match(const Tag &tag) const noexcept
 {
@@ -49,7 +42,8 @@ TagSongFilter::Match(const Tag &tag) const noexcept
 	for (const auto &i : tag) {
 		visited_types[i.type] = true;
 
-		if (Match(i))
+		if ((type == TAG_NUM_OF_ITEM_TYPES || i.type == type) &&
+		    filter.Match(i.value))
 			return true;
 	}
 
diff --git a/src/song/TagSongFilter.hxx b/src/song/TagSongFilter.hxx
index 6d0449d61..3f9f7051b 100644
--- a/src/song/TagSongFilter.hxx
+++ b/src/song/TagSongFilter.hxx
@@ -69,7 +69,6 @@ public:
 
 private:
 	bool Match(const Tag &tag) const noexcept;
-	bool Match(const TagItem &tag) const noexcept;
 };
 
 #endif