diff --git a/NEWS b/NEWS
index 738904249..f72f15838 100644
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,8 @@ ver 0.22.7 (not yet released)
   - gme: support RSN files
 * storage
   - curl: don't use glibc extension
+* database
+  - simple: fix database corruption bug
 * output
   - httpd: send header "Access-Control-Allow-Origin: *"
   - wasapi: add algorithm for finding usable audio format
diff --git a/src/tag/Pool.cxx b/src/tag/Pool.cxx
index e977c6784..e5a6d57f2 100644
--- a/src/tag/Pool.cxx
+++ b/src/tag/Pool.cxx
@@ -114,10 +114,7 @@ tag_pool_get_item(TagType type, StringView value) noexcept
 	auto slot_p = tag_value_slot_p(type, value);
 	for (auto slot = *slot_p; slot != nullptr; slot = slot->next) {
 		if (slot->item.type == type &&
-		    /* strncmp() only works if there are no null
-		       bytes, which FixTagString() has already ensured
-		       at this point */
-		    strncmp(value.data, slot->item.value, value.size) == 0 &&
+		    value.Equals(slot->item.value) &&
 		    slot->ref < TagPoolSlot::MAX_REF) {
 			assert(slot->ref > 0);
 			++slot->ref;