Index: trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java	(revision 1195)
+++ trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java	(revision 1196)
@@ -75,8 +75,18 @@
         String fn = file.getName();
         if (ExtensionFileFilter.filters[ExtensionFileFilter.OSM].acceptName(fn)) {
-            DataSet dataSet = OsmReader.parseDataSet(new FileInputStream(file), null, Main.pleaseWaitDlg);
+            OsmReader osm = OsmReader.parseDataSetOsm(new FileInputStream(file), null, Main.pleaseWaitDlg);
+            DataSet dataSet = osm.getDs();
             OsmDataLayer layer = new OsmDataLayer(dataSet, file.getName(), file);
             Main.main.addLayer(layer);
             layer.fireDataChange();
+            if (osm.getParseNotes().length() != 0) {
+                /* display at most five lines */
+                String notes = osm.getParseNotes();
+                int j = 0;
+                for (int i = 0; i < 5; i++) {
+                    j = notes.indexOf('\n', j + 1);
+                }
+                JOptionPane.showMessageDialog(Main.parent, notes.substring(0, j));
+            }
         }
         else
Index: trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java	(revision 1195)
+++ trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java	(revision 1196)
@@ -114,6 +114,7 @@
             if (wayOccurenceCounter.isEmpty()) {
                 JOptionPane.showMessageDialog(Main.parent,
-                        trn("The selected node is no inner part of any way.",
-                                "The selected nodes are no inner part of any way.", selectedNodes.size()));
+                trn("The selected node is not in the middle of any way.",
+                "The selected nodes are not in the middle of any way.",
+                selectedNodes.size()));
                 return;
             }
Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(revision 1195)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(revision 1196)
@@ -345,8 +345,7 @@
             }
         }
-        Boolean isMultipolygon = "multipolygon".equals(r.keys.get("type"));
-        if (!drawMultipolygon || !isMultipolygon)
-        {
-            if(r.selected && !isMultipolygon)
+        if (!drawMultipolygon || !"multipolygon".equals(r.keys.get("type")))
+        {
+            if(r.selected)
             {
                 for (RelationMember m : r.members)
Index: trunk/src/org/openstreetmap/josm/io/OsmReader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmReader.java	(revision 1195)
+++ trunk/src/org/openstreetmap/josm/io/OsmReader.java	(revision 1196)
@@ -60,4 +60,14 @@
       */
      private DataSet ds = new DataSet();
+     public DataSet getDs() { return ds; }
+
+     /**
+      * Record warnings.  If there were any data inconsistencies, append
+      * a newline-terminated string.
+      */
+     private String parseNotes = new String();
+     public String getParseNotes() {
+         return parseNotes;
+     }
 
      /**
@@ -333,4 +343,5 @@
                     Node n = findNode(id);
                     if (n == null) {
+                         parseNotes += tr("Skipping a way because it includes a node that doesn't exist: {0}\n", id);
                          failed = true;
                          break;
@@ -435,4 +446,8 @@
       */
      public static DataSet parseDataSet(InputStream source, DataSet ref, PleaseWaitDialog pleaseWaitDlg) throws SAXException, IOException {
+          return parseDataSetOsm(source, ref, pleaseWaitDlg).ds;
+     }
+
+     public static OsmReader parseDataSetOsm(InputStream source, DataSet ref, PleaseWaitDialog pleaseWaitDlg) throws SAXException, IOException {
           OsmReader osm = new OsmReader();
           osm.references = ref == null ? new DataSet() : ref;
@@ -468,5 +483,5 @@
                     o.id = 0;
 
-          return osm.ds;
+          return osm;
      }
 }
