Index: trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java	(revision 9573)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java	(revision 9574)
@@ -185,4 +185,5 @@
                 return r.types.contains(TaggingPresetType.WAY);
             case MULTIPOLYGON:
+                return r.types.contains(TaggingPresetType.MULTIPOLYGON);
             case RELATION:
                 return r.types.contains(TaggingPresetType.RELATION);
Index: trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetItem.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetItem.java	(revision 9573)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetItem.java	(revision 9574)
@@ -88,5 +88,7 @@
             try {
                 TaggingPresetType presetType = TaggingPresetType.fromString(type);
-                result.add(presetType);
+                if (presetType != null) {
+                    result.add(presetType);
+                }
             } catch (IllegalArgumentException e) {
                 throw new SAXException(tr("Unknown type: {0}", type), e);
Index: trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetType.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetType.java	(revision 9573)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetType.java	(revision 9574)
@@ -17,5 +17,7 @@
     RELATION(/* ICON */ "Mf_relation", "relation"),
     /** Closed way */
-    CLOSEDWAY(/* ICON */ "Mf_closedway", "closedway");
+    CLOSEDWAY(/* ICON */ "Mf_closedway", "closedway"),
+    /** Multipolygon */
+    MULTIPOLYGON(/* ICON */ "multipoly_create", "multipolygon"); // FIXME find a better multipolygon icon
     private final String iconName;
     private final String name;
@@ -57,9 +59,14 @@
      */
     public static TaggingPresetType forPrimitiveType(OsmPrimitiveType type) {
-        if (type == OsmPrimitiveType.NODE) return NODE;
-        if (type == OsmPrimitiveType.WAY) return WAY;
-        if (type == OsmPrimitiveType.CLOSEDWAY) return CLOSEDWAY;
-        if (type == OsmPrimitiveType.RELATION || type == OsmPrimitiveType.MULTIPOLYGON)
-                return RELATION;
+        if (type == OsmPrimitiveType.NODE)
+            return NODE;
+        if (type == OsmPrimitiveType.WAY)
+            return WAY;
+        if (type == OsmPrimitiveType.CLOSEDWAY)
+            return CLOSEDWAY;
+        if (type == OsmPrimitiveType.MULTIPOLYGON)
+            return TaggingPresetType.MULTIPOLYGON;
+        if (type == OsmPrimitiveType.RELATION)
+            return RELATION;
         throw new IllegalArgumentException("Unexpected primitive type: " + type);
     }
