Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(revision 1695)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(revision 1696)
@@ -833,6 +833,6 @@
             for (Way w : outer)
             {
-               if(wayStyle == null || !(wayStyle instanceof AreaElemStyle))
-                   wayStyle = styles.get(w);
+               if(wayStyle == null)
+                   wayStyle = styles.getArea(w);
             }
             r.mappaintStyle = wayStyle;
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java	(revision 1695)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java	(revision 1696)
@@ -366,6 +366,7 @@
             if (way1 != null) {
                 int next = i+1;
-                while (next < clone.members.size()) {
-                    m = clone.members.get(next++);
+                while (next <= clone.members.size()) {
+                    m = clone.members.get(next == clone.members.size() ? 0 : next);
+                    next++;
                     depth = 0;
                     while (m != null && depth < 10) {
Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java	(revision 1695)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java	(revision 1696)
@@ -126,4 +126,16 @@
         }
 
+        public ElemStyle getArea(Way osm)
+        {
+            if(osm.keys != null)
+            {
+                /* force area mode also for unclosed ways */
+                ElemStyle style = get(osm.keys, false);
+                if(style != null && style instanceof AreaElemStyle)
+                    return style;
+            }
+            return null;
+        }
+
         public IconElemStyle getIcon(OsmPrimitive osm)
         {
Index: /trunk/src/org/openstreetmap/josm/io/GpxImporter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/GpxImporter.java	(revision 1695)
+++ /trunk/src/org/openstreetmap/josm/io/GpxImporter.java	(revision 1696)
@@ -6,4 +6,5 @@
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
@@ -50,10 +51,11 @@
                     Main.main.addLayer(ml);
             }
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+            throw new IOException(tr("File \"{0}\" does not exist", file.getName()));
         } catch (SAXException e) {
             e.printStackTrace();
-            throw new IOException(tr("Could not read \"{0}\"", file.getName()));
+            throw new IOException(tr("Parsing file \"{0}\" failed", file.getName()));
         }
-
     }
-
 }
Index: /trunk/src/org/openstreetmap/josm/io/OsmImporter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/OsmImporter.java	(revision 1695)
+++ /trunk/src/org/openstreetmap/josm/io/OsmImporter.java	(revision 1696)
@@ -38,8 +38,8 @@
         } catch (FileNotFoundException e) {
             e.printStackTrace();
-            throw new IOException(tr("Could not read \"{0}\"", file.getName()));
+            throw new IOException(tr("File \"{0}\" does not exist", file.getName()));
         } catch (SAXException e) {
             e.printStackTrace();
-            throw new IOException(tr("Could not read \"{0}\"", file.getName()));
+            throw new IOException(tr("Parsing file \"{0}\" failed", file.getName()));
         }
     }
