Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/DataSetUpdater.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/DataSetUpdater.java	(revision 30095)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/DataSetUpdater.java	(revision 30097)
@@ -21,5 +21,10 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.SimplifyWayAction;
+import org.openstreetmap.josm.command.SequenceCommand;
 import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Relation;
+import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.plugins.opendata.core.OdConstants;
 
@@ -40,4 +45,23 @@
 			handler.checkDataSetSource(dataSet);
 			handler.checkNames(dataSet);
+			// Replace multipolygons with single untagged member by their sole member
+			for (Relation r : dataSet.getRelations()) {
+			    if (r.isMultipolygon() && r.getMembersCount() == 1) {
+			        OsmPrimitive outer = r.getMember(0).getMember();
+			        if (!outer.isTagged()) {
+			            r.remove("type");
+			            r.removeMember(0);
+                        outer.setKeys(r.getKeys());
+			            dataSet.removePrimitive(r);
+			        }
+			    }
+			}
+			// Simplify ways geometries
+			for (Way w : dataSet.getWays()) {
+			    SequenceCommand command = Main.main.menu.simplifyWay.simplifyWay(w, 0.25);
+			    if (command != null) {
+			        Main.main.undoRedo.addNoRedraw(command);
+			    }
+			}
 		}
 	}
