Index: trunk/test/unit/org/openstreetmap/josm/data/osm/RelationTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/data/osm/RelationTest.java	(revision 9713)
+++ trunk/test/unit/org/openstreetmap/josm/data/osm/RelationTest.java	(revision 9716)
@@ -2,5 +2,7 @@
 package org.openstreetmap.josm.data.osm;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 
 import org.junit.Assert;
@@ -104,3 +106,26 @@
         Assert.assertEquals(new BBox(w1), r1.getBBox());
     }
+
+    /**
+     * Non-regression test for <a href="https://josm.openstreetmap.de/ticket/12467">Bug #12467</a>.
+     * @throws Exception if any error occurs
+     */
+    @Test
+    public void testTicket12467() throws Exception {
+        Relation r = new Relation();
+        r.put("type", "boundary");
+        assertTrue(r.isBoundary());
+        assertTrue(r.isMultipolygon());
+        assertEquals(OsmPrimitiveType.RELATION, r.getDisplayType());
+
+        r.put("type", "multipolygon");
+        assertFalse(r.isBoundary());
+        assertTrue(r.isMultipolygon());
+        assertEquals(OsmPrimitiveType.MULTIPOLYGON, r.getDisplayType());
+
+        r.put("type", "something_else");
+        assertFalse(r.isBoundary());
+        assertFalse(r.isMultipolygon());
+        assertEquals(OsmPrimitiveType.RELATION, r.getDisplayType());
+    }
 }
