Index: trunk/src/org/openstreetmap/josm/data/validation/OsmValidator.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/OsmValidator.java	(revision 16442)
+++ trunk/src/org/openstreetmap/josm/data/validation/OsmValidator.java	(revision 16443)
@@ -19,10 +19,8 @@
 import java.util.Enumeration;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
-import java.util.Set;
 import java.util.SortedMap;
 import java.util.TreeMap;
@@ -322,12 +320,6 @@
     private static void cleanup3000() {
         // see #19053
-        Set<String> toRemove = new HashSet<>();
-        for (Entry<String, String> entry : ignoredErrors.entrySet()) {
-            if (entry.getKey().equals("3000_" + entry.getValue()))
-                toRemove.add(entry.getValue());
-        }
         ignoredErrors.entrySet()
-                .removeIf(e -> toRemove.contains(e.getValue()) && !e.getKey().equals("3000_" + e.getValue()));
-
+                .removeIf(e -> e.getKey().equals("3000_" + e.getValue()));
     }
 
Index: trunk/test/unit/org/openstreetmap/josm/data/validation/OsmValidatorTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/data/validation/OsmValidatorTest.java	(revision 16442)
+++ trunk/test/unit/org/openstreetmap/josm/data/validation/OsmValidatorTest.java	(revision 16443)
@@ -2,7 +2,10 @@
 package org.openstreetmap.josm.data.validation;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertTrue;
+
+import java.util.Collections;
 
 import org.junit.Before;
@@ -87,4 +90,15 @@
 
     /**
+     * Non-regression test for <a href="https://josm.openstreetmap.de/ticket/19053">Bug #19053</a>.
+     * {@link OsmValidator#cleanupIgnoredErrors()} must not combine primitives.
+     */
+    @Test
+    public void testCleanupIgnoredErrorsTicket19053() {
+        OsmValidator.addIgnoredError("3000_missing tag", "missing tag");
+        OsmValidator.cleanupIgnoredErrors();
+        assertEquals(Collections.emptyMap(), OsmValidator.getIgnoredErrors());
+    }
+
+    /**
      * Test that tests are really removed, and that core tests cannot be removed
      */
