Index: trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- trunk/src/org/openstreetmap/josm/Main.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/Main.java	(revision 1195)
@@ -479,5 +479,5 @@
             final Bounds b = BoundingBoxSelection.osmurl2bounds(s);
             if (b == null)
-                JOptionPane.showMessageDialog(Main.parent, tr("Ignoring malformed url: \"{0}\"", s));
+                JOptionPane.showMessageDialog(Main.parent, tr("Ignoring malformed URL: \"{0}\"", s));
             else {
                 //DownloadTask osmTask = main.menu.download.downloadTasks.get(0);
@@ -492,5 +492,5 @@
                 main.menu.openFile.openFile(new File(new URI(s)));
             } catch (URISyntaxException e) {
-                JOptionPane.showMessageDialog(Main.parent, tr("Ignoring malformed file url: \"{0}\"", s));
+                JOptionPane.showMessageDialog(Main.parent, tr("Ignoring malformed file URL: \"{0}\"", s));
             }
             return;
Index: trunk/src/org/openstreetmap/josm/actions/OpenLocationAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/OpenLocationAction.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/actions/OpenLocationAction.java	(revision 1195)
@@ -46,5 +46,5 @@
      */
     public OpenLocationAction() {
-        super(tr("Open Location..."), "openlocation", tr("Open a URL."),
+        super(tr("Open Location..."), "openlocation", tr("Open an URL."),
         Shortcut.registerShortcut("system:open_location", tr("File: {0}", tr("Open Location...")), KeyEvent.VK_L, Shortcut.GROUP_MENU), true);
     }
Index: trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java	(revision 1195)
@@ -41,5 +41,5 @@
         super(tr("Orthogonalize shape"),
             "ortho",
-            tr("Move nodes so all angles are 90 or 270deg"),
+            tr("Move nodes so all angles are 90 or 270 degree"),
             Shortcut.registerShortcut("tools:orthogonalize", tr("Tool: {0}", tr("Orthogonalize")),
             KeyEvent.VK_Q,
@@ -73,5 +73,5 @@
             Way way = (Way)osm;
             if ((way.nodes.size() < 5) || (!way.nodes.get(0).equals(way.nodes.get(way.nodes.size() - 1)))) {
-                JOptionPane.showMessageDialog(Main.parent, tr("Please select closed way(s) of at least four nodes."));
+                JOptionPane.showMessageDialog(Main.parent, tr("Please select one ore more closed ways of at least four nodes."));
                 return;
             }
Index: trunk/src/org/openstreetmap/josm/actions/UnGlueAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/UnGlueAction.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/actions/UnGlueAction.java	(revision 1195)
@@ -86,7 +86,7 @@
             if (tmpNodes.size() < 1) {
                 if (selection.size() > 1) {
-                    JOptionPane.showMessageDialog(Main.parent, tr("None of these nodes is glued to anything else."));
+                    JOptionPane.showMessageDialog(Main.parent, tr("None of these nodes are glued to anything else."));
                 } else {
-                    JOptionPane.showMessageDialog(Main.parent, tr("None of this way's nodes is glued to anything else."));
+                    JOptionPane.showMessageDialog(Main.parent, tr("None of this way's nodes are glued to anything else."));
                 }
             } else {
Index: trunk/src/org/openstreetmap/josm/actions/mapmode/ZoomAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/ZoomAction.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/ZoomAction.java	(revision 1195)
@@ -75,5 +75,5 @@
 
     @Override public String getModeHelpText() {
-        return tr("Zoom by dragging or Ctrl+. or Ctrl+,; move with Ctrl+up,left,down,right; move zoom with right button");
+        return tr("Zoom by dragging or Ctrl+. or Ctrl+,; move with Ctrl+up, left, down, right; move zoom with right button");
     }
 }
Index: trunk/src/org/openstreetmap/josm/actions/search/SelectionWebsiteLoader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/search/SelectionWebsiteLoader.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/actions/search/SelectionWebsiteLoader.java	(revision 1195)
@@ -55,8 +55,8 @@
         } catch (IOException e) {
             e.printStackTrace();
-            JOptionPane.showMessageDialog(Main.parent, tr("Could not read from url: \"{0}\"",url));
+            JOptionPane.showMessageDialog(Main.parent, tr("Could not read from URL: \"{0}\"",url));
         } catch (SAXException e) {
             e.printStackTrace();
-            JOptionPane.showMessageDialog(Main.parent,tr("Parsing error in url: \"{0}\"",url));
+            JOptionPane.showMessageDialog(Main.parent,tr("Parsing error in URL: \"{0}\"",url));
         }
     }
Index: trunk/src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java
===================================================================
--- trunk/src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java	(revision 1195)
@@ -134,5 +134,5 @@
 
         return applyCorrections(tagCorrectionsMap, roleCorrectionMap,
-                tr("When reverting this way, following changes to properties "
+                tr("When reversing this way, the following changes to properties "
                         + "of the way and its nodes are suggested in order "
                         + "to maintain data consistency."));
Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(revision 1195)
@@ -38,4 +38,5 @@
     protected boolean zoomLevelDisplay;
     protected boolean fillAreas;
+    protected boolean drawMultipolygon;
     protected int fillAlpha;
     protected Color untaggedColor;
@@ -48,6 +49,7 @@
     protected double circum;
     protected String regionalNameOrder[];
-    protected Collection<Way> alreadyDrawnWays = new LinkedList<Way>();
-    protected Collection<Way> alreadyDrawnAreas = new LinkedList<Way>();
+    protected Boolean selectedCall;
+    protected Collection<OsmPrimitive> alreadyDrawn;
+    protected Collection<Way> alreadyDrawnAreas;
 
     protected boolean isZoomOk(ElemStyle e) {
@@ -73,7 +75,7 @@
      */
     public void visit(Node n) {
-        IconElemStyle nodeStyle = styles.get(n);
+        IconElemStyle nodeStyle = (IconElemStyle)styles.get(n);
         if (nodeStyle != null && isZoomOk(nodeStyle))
-            drawNode(n, nodeStyle.icon, nodeStyle.annotate);
+            drawNode(n, nodeStyle.icon, nodeStyle.annotate, n.selected);
         else if (n.selected)
             drawNode(n, selectedColor, selectedNodeSize, selectedNodeRadius, fillSelectedNode);
@@ -114,8 +116,8 @@
         }
 
-        drawWay(w, l, areacolor);
-    }
-
-    public void drawWay(Way w, LineElemStyle l, Color color) {
+        drawWay(w, l, areacolor, w.selected);
+    }
+
+    public void drawWay(Way w, LineElemStyle l, Color color, Boolean selected) {
         // show direction arrows, if draw.segment.relevant_directions_only is not set,
         // the way is tagged with a direction key
@@ -134,4 +136,6 @@
             dashed = l.dashed;
         }
+        if(selected)
+            color = selectedColor;
         if (realWidth > 0 && useRealWidth && !showDirection)
         {
@@ -294,12 +298,70 @@
     }
 
+    public void drawSelected(OsmPrimitive osm, ElemStyle style, Boolean area,
+    Boolean areaselected)
+    {
+        if(osm instanceof Way)
+        {
+            if(style instanceof AreaElemStyle)
+            {
+                drawWay((Way)osm, ((AreaElemStyle)style).line, selectedColor, true);
+                if(area)
+                    drawWayAsArea((Way)osm, areaselected ? selectedColor
+                    : ((AreaElemStyle)style).color);
+            }
+            else
+            {
+                drawWay((Way)osm, (LineElemStyle)style, selectedColor, true);
+            }
+        }
+        else if(osm instanceof Node)
+        {
+            if(style != null && isZoomOk(style))
+                drawNode((Node)osm, ((IconElemStyle)style).icon,
+                ((IconElemStyle)style).annotate, true);
+            else
+                drawNode((Node)osm, selectedColor, selectedNodeSize, selectedNodeRadius, fillSelectedNode);
+        }
+    }
+
     public void visit(Relation r) {
         // draw multipolygon relations including their ways
-        // other relations are not (yet?) drawn.
-        if (r.incomplete) return;
-
-        if(!Main.pref.getBoolean("mappaint.multipolygon",false)) return;
-
-        if(!"multipolygon".equals(r.keys.get("type"))) return;
+        // other relations are only drawn when selected
+        if(r.selected)
+        {
+            if(selectedCall)
+            {
+                for (RelationMember m : r.members)
+                {
+                    /* second call - draw nodes */
+                    if (!m.member.incomplete && !m.member.deleted
+                    && m.member instanceof Node)
+                    {
+                        drawSelected(m.member, styles.get(m.member), true, true);
+                        alreadyDrawn.add(m.member);
+                    }
+                }
+                return;
+            }
+        }
+        Boolean isMultipolygon = "multipolygon".equals(r.keys.get("type"));
+        if (!drawMultipolygon || !isMultipolygon)
+        {
+            if(r.selected && !isMultipolygon)
+            {
+                for (RelationMember m : r.members)
+                {
+                    if (!m.member.incomplete && !m.member.deleted
+                    && !(m.member instanceof Relation))
+                    {
+                        /* nodes drawn on second call */
+                        if(!(m.member instanceof Node))
+                            drawSelected(m.member, styles.get(m.member), true, true);
+                        alreadyDrawn.add(m.member);
+                    }
+                }
+            }
+            return;
+        }
 
         Collection<Way> inner = new LinkedList<Way>();
@@ -328,8 +390,11 @@
                         if(m.role == null || m.role.length() == 0)
                             outer.add(w);
+                        else if(r.selected)
+                            drawSelected(m.member, styles.get(m.member), true, true);
                     }
                 }
                 else
                 {
+                    /* nodes drawn on second call */
 System.out.println("ERROR: Non-Way in multipolygon " + m.member);
                 }
@@ -385,5 +450,5 @@
                 for (Way w : outerclosed)
                 {
-                    Color color = w.selected ? selectedColor
+                    Color color = (w.selected || r.selected) ? selectedColor
                     : ((AreaElemStyle)wayStyle).color;
                     Polygon polygon = new Polygon();
@@ -423,12 +488,25 @@
                 {
                     if(zoomok)
+                    {
                         drawWay(wInner, ((AreaElemStyle)wayStyle).line,
-                        ((AreaElemStyle)wayStyle).color);
-                    alreadyDrawnWays.add(wInner);
-                }
-                else if(wayStyle.equals(innerStyle))
-                {
+                        ((AreaElemStyle)wayStyle).color, wInner.selected
+                        || r.selected);
+                    }
+                    alreadyDrawn.add(wInner);
+                }
+                else
+                {
+                    if(r.selected)
+                    {
+                        drawSelected(wInner, innerStyle,
+                        !wayStyle.equals(innerStyle), wInner.selected);
+                        alreadyDrawn.add(wInner);
+                    }
+                    if(wayStyle.equals(innerStyle))
+                    {
 System.out.println("WARNING: Inner waystyle equals multipolygon for way " + wInner);
-                    alreadyDrawnAreas.add(wInner);
+                        if(!r.selected)
+                            alreadyDrawnAreas.add(wInner);
+                    }
                 }
             }
@@ -439,13 +517,25 @@
                 {
                     if(zoomok)
+                    {
                         drawWay(wOuter, ((AreaElemStyle)wayStyle).line,
-                        ((AreaElemStyle)wayStyle).color);
-                    alreadyDrawnWays.add(wOuter);
+                        ((AreaElemStyle)wayStyle).color, wOuter.selected
+                        || r.selected);
+                    }
+                    alreadyDrawn.add(wOuter);
                 }
                 else
                 {
-                    if(!wayStyle.equals(outerStyle))
+                    if(outerStyle instanceof AreaElemStyle
+                    && !wayStyle.equals(outerStyle))
+                    {
 System.out.println("ERROR: Outer waystyle does not match multipolygon for way " + wOuter);
-                    alreadyDrawnAreas.add(wOuter);
+                    }
+                    if(r.selected)
+                    {
+                        drawSelected(wOuter, outerStyle, false, false);
+                        alreadyDrawn.add(wOuter);
+                    }
+//                    else if(outerStyle instanceof AreaElemStyle)
+                        alreadyDrawnAreas.add(wOuter);
                 }
             }
@@ -470,6 +560,5 @@
     }
 
-    // NEW
-    protected void drawNode(Node n, ImageIcon icon, boolean annotate) {
+    protected void drawNode(Node n, ImageIcon icon, boolean annotate, Boolean selected) {
         Point p = nc.getPoint(n.eastNorth);
         if ((p.x < 0) || (p.y < 0) || (p.x > nc.getWidth()) || (p.y > nc.getHeight())) return;
@@ -485,5 +574,5 @@
             g.setFont(defaultFont);
         }
-        if (n.selected)
+        if (selected)
         {
             g.setColor (  selectedColor );
@@ -582,8 +671,13 @@
         circum = Main.map.mapView.getScale()*100*Main.proj.scaleFactor()*40041455; // circumference of the earth in meter
         styles = MapPaintStyles.getStyles();
+        drawMultipolygon = Main.pref.getBoolean("mappaint.multipolygon",false);
         orderFont = new Font(Main.pref.get("mappaint.font","Helvetica"), Font.PLAIN, Main.pref.getInteger("mappaint.fontsize", 8));
         String currentLocale = Locale.getDefault().getLanguage();
         regionalNameOrder = Main.pref.get("mappaint.nameOrder", "name:"+currentLocale+";name;int_name").split(";");
 
+        alreadyDrawn = new LinkedList<OsmPrimitive>();
+        alreadyDrawnAreas = new LinkedList<Way>();
+        selectedCall = false;
+
         if (fillAreas && styles.hasAreas()) {
             Collection<Way> noAreaWays = new LinkedList<Way>();
@@ -591,13 +685,11 @@
             for (final Relation osm : data.relations)
             {
-                if (!osm.deleted && !osm.selected)
-                {
+                if(!osm.deleted && !osm.incomplete)
                     osm.visit(this);
-                }
             }
 
             for (final Way osm : data.ways)
             {
-                if (!osm.incomplete && !osm.deleted && !alreadyDrawnWays.contains(osm))
+                if (!osm.incomplete && !osm.deleted && !alreadyDrawn.contains(osm))
                 {
                     if(styles.isArea((Way)osm) && !alreadyDrawnAreas.contains(osm))
@@ -607,6 +699,4 @@
                 }
             }
-            // free that stuff
-            alreadyDrawnWays = null;
             alreadyDrawnAreas = null;
 
@@ -618,18 +708,22 @@
         {
             for (final OsmPrimitive osm : data.ways)
-                if (!osm.incomplete && !osm.deleted)
+                if (!osm.incomplete && !osm.deleted && !osm.selected)
                     osm.visit(this);
         }
 
-        for (final OsmPrimitive osm : data.getSelected())
-            if (!osm.incomplete && !osm.deleted){
+        selectedCall = true;
+        for (final OsmPrimitive osm : data.getSelected()) {
+            if (!osm.incomplete && !osm.deleted
+            && !(osm instanceof Node) && !alreadyDrawn.contains(osm))
                 osm.visit(this);
-            }
+        }
 
         displaySegments();
 
         for (final OsmPrimitive osm : data.nodes)
-            if (!osm.incomplete && !osm.deleted)
+            if (!osm.incomplete && !osm.deleted && !alreadyDrawn.contains(osm))
                 osm.visit(this);
+
+        alreadyDrawn = null;
 
         if (virtualNodeSize != 0)
@@ -637,5 +731,5 @@
             currentColor = nodeColor;
             for (final OsmPrimitive osm : data.ways)
-                if (!osm.deleted)
+                if (!osm.incomplete && !osm.deleted)
                     visitVirtual((Way)osm);
             displaySegments(null);
Index: trunk/src/org/openstreetmap/josm/gui/MainApplet.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainApplet.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/gui/MainApplet.java	(revision 1195)
@@ -55,7 +55,7 @@
         {"password", tr("string"), tr("OSM Password.")},
         {"geometry", tr("string"), tr("Resize the applet to the given geometry (format: WIDTHxHEIGHT)")},
-        {"download", tr("string;string;..."), tr("Download each. Can be x1,y1,x2,y2 an url containing lat=y&lon=x&zoom=z or a filename")},
-        {"downloadgps", tr("string;string;..."), tr("Download each as raw gps. Can be x1,y1,x2,y2 an url containing lat=y&lon=x&zoom=z or a filename")},
-        {"selection", tr("string;string;..."), tr("Add each to the initial selection. Can be a google-like search string or an url which returns osm-xml")},
+        {"download", tr("string;string;..."), tr("Download each. Can be x1,y1,x2,y2 an URL containing lat=y&lon=x&zoom=z or a filename")},
+        {"downloadgps", tr("string;string;..."), tr("Download each as raw gps. Can be x1,y1,x2,y2 an URL containing lat=y&lon=x&zoom=z or a filename")},
+        {"selection", tr("string;string;..."), tr("Add each to the initial selection. Can be a google-like search string or an URL which returns osm-xml")},
         {"reset-preferences", tr("any"),tr("If specified, reset the configuration instead of reading it.")}
     };
Index: trunk/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java	(revision 1195)
@@ -20,5 +20,5 @@
 /**
  * Instanced of this thread will display a "Please Wait" message in middle of JOSM
- * to indicate a progress beeing executed.
+ * to indicate a progress being executed.
  *
  * @author Imi
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/RelationEditor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/RelationEditor.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/RelationEditor.java	(revision 1195)
@@ -14,5 +14,4 @@
 import java.beans.PropertyChangeListener;
 import java.io.IOException;
-import java.lang.reflect.Array;
 import java.text.Collator;
 import java.util.ArrayList;
@@ -304,7 +303,5 @@
             upDownPanel.setLayout(new BoxLayout(upDownPanel, BoxLayout.Y_AXIS));
 
-
-
-            upDownPanel.add(createButton(null, "moveup", tr("Move the currently selected member(s) up"),
+            upDownPanel.add(createButton(null, "moveup", tr("Move the currently selected members up"),
                     KeyEvent.VK_U, new ActionListener() {
                 public void actionPerformed(ActionEvent e) {
@@ -312,5 +309,5 @@
                 }
             }));
-            upDownPanel.add(createButton(null, "movedown", tr("Move the currently selected member(s) down"),
+            upDownPanel.add(createButton(null, "movedown", tr("Move the currently selected members down"),
                     KeyEvent.VK_N, new ActionListener() {
                 public void actionPerformed(ActionEvent e) {
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(revision 1195)
@@ -4,4 +4,5 @@
 import static org.openstreetmap.josm.tools.I18n.marktr;
 import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
 
 import java.awt.BorderLayout;
@@ -37,4 +38,5 @@
 import org.openstreetmap.josm.data.osm.Node;
 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.data.osm.visitor.BoundingXYVisitor;
@@ -286,4 +288,5 @@
             int ways = 0;
             int nodes = 0;
+            int relations = 0;
             for (OsmPrimitive o : sel) {
                 if (o instanceof Way)
@@ -291,6 +294,18 @@
                 else if (o instanceof Node)
                     nodes++;
-            }
-            setText(String.format(tr("Selection: %d way(s) and %d node(s)"), new Object[] { ways, nodes }));
+                else if (o instanceof Relation)
+                    relations++;
+            }
+            String text = "";
+            if(ways != 0)
+                text += (text.length() > 0 ? ", " : "")
+                + trn("{0} way", "{0} ways", ways, ways);
+            if(nodes != 0)
+                text += (text.length() > 0 ? ", " : "")
+                + trn("{0} node", "{0} nodes", nodes, nodes);
+            if(relations != 0)
+                text += (text.length() > 0 ? ", " : "")
+                + trn("{0} relation", "{0} relations", relations, relations);
+            setText(tr("Selection: {0}", text));
             addActionListener(this);
         }
Index: trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java	(revision 1195)
@@ -226,5 +226,5 @@
         });
 
-        JMenuItem moveaudio = new JMenuItem(tr("Make Audio Marker At Play Head"), ImageProvider.get("addmarkers"));
+        JMenuItem moveaudio = new JMenuItem(tr("Make Audio Marker at Play Head"), ImageProvider.get("addmarkers"));
         moveaudio.putClientProperty("help", "Action/MakeAudioMarkerAtPlayHead");
         moveaudio.addActionListener(new ActionListener(){
Index: trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/PlayHeadMarker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/PlayHeadMarker.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/PlayHeadMarker.java	(revision 1195)
@@ -201,5 +201,5 @@
         if (ca == null) {
             /* Not close enough to track, or no audio marker found for some other reason */
-            JOptionPane.showMessageDialog(Main.parent, tr("You need to Drag the play head near to the GPX track whose associated sound track you were playing."));
+            JOptionPane.showMessageDialog(Main.parent, tr("You need to drag the play head near to the GPX track whose associated sound track you were playing."));
             endDrag(true);
         } else {
@@ -249,5 +249,5 @@
             WayPoint cw = recent.parentLayer.fromLayer.nearestPointOnTrack(en, enPlus25px.east() - en.east());
             if (cw == null) {
-                JOptionPane.showMessageDialog(Main.parent, tr("You need to SHIFT-Drag the play head onto an audio marker or onto the track point where you want to synchronize."));
+                JOptionPane.showMessageDialog(Main.parent, tr("You need to SHIFT-drag the play head onto an audio marker or onto the track point where you want to synchronize."));
                 endDrag(true);
                 return;
@@ -259,5 +259,5 @@
         if(ca == null)
         {
-            JOptionPane.showMessageDialog(Main.parent,tr("Unable to create new Audio marker."));
+            JOptionPane.showMessageDialog(Main.parent,tr("Unable to create new audio marker."));
             endDrag(true);
         }
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java	(revision 1195)
@@ -88,31 +88,27 @@
     }
 
-    public IconElemStyle get(Node n)
-    {
-        StyleSet ss = getStyleSet(null, false);
+    private ElemStyle getNode(Map<String, String> keys, StyleSet ss)
+    {
         IconElemStyle ret = null;
-        if(ss != null && n.keys != null)
-        {
-            Iterator<String> iterator = n.keys.keySet().iterator();
-            while(iterator.hasNext())
-            {
-                String key = iterator.next();
-                String val = n.keys.get(key);
-                IconElemStyle style;
-                if((style = ss.icons.get("n" + key + "=" + val)) != null)
-                {
-                    if(ret == null || style.priority > ret.priority)
-                        ret = style;
-                }
-                if((style = ss.icons.get("b" + key + "=" + OsmUtils.getNamedOsmBoolean(val))) != null)
-                {
-                    if(ret == null || style.priority > ret.priority)
-                        ret = style;
-                }
-                if((style = ss.icons.get("x" + key)) != null)
-                {
-                    if(ret == null || style.priority > ret.priority)
-                        ret = style;
-                }
+        Iterator<String> iterator = keys.keySet().iterator();
+        while(iterator.hasNext())
+        {
+            String key = iterator.next();
+            String val = keys.get(key);
+            IconElemStyle style;
+            if((style = ss.icons.get("n" + key + "=" + val)) != null)
+            {
+                if(ret == null || style.priority > ret.priority)
+                    ret = style;
+            }
+            if((style = ss.icons.get("b" + key + "=" + OsmUtils.getNamedOsmBoolean(val))) != null)
+            {
+                if(ret == null || style.priority > ret.priority)
+                    ret = style;
+            }
+            if((style = ss.icons.get("x" + key)) != null)
+            {
+                if(ret == null || style.priority > ret.priority)
+                    ret = style;
             }
         }
@@ -181,14 +177,9 @@
     }
 
-    public ElemStyle get(Way w)
+    public ElemStyle get(OsmPrimitive osm)
     {
         StyleSet ss = getStyleSet(null, false);
-        return (ss == null || w.keys == null) ? null : get(w.keys, ss);
-    }
-
-    public ElemStyle get(Relation r)
-    {
-        StyleSet ss = getStyleSet(null, false);
-        return (ss == null || r.keys == null) ? null : get(r.keys, ss);
+        return (ss == null || osm.keys == null) ? null :
+        ((osm instanceof Node) ? getNode(osm.keys, ss) : get(osm.keys, ss));
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/preferences/ServerAccessPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/ServerAccessPreference.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/ServerAccessPreference.java	(revision 1195)
@@ -45,5 +45,5 @@
         JLabel warning = new JLabel(tr("<html>" +
                 "WARNING: The password is stored in plain text in the preferences file.<br>" +
-                "The password is transfered in plain text to the server, encoded in the url.<br>" +
+                "The password is transfered in plain text to the server, encoded in the URL.<br>" +
         "<b>Do not use a valuable Password.</b></html>"));
         warning.setFont(warning.getFont().deriveFont(Font.ITALIC));
Index: trunk/src/org/openstreetmap/josm/gui/preferences/TaggingPresetPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/TaggingPresetPreference.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/TaggingPresetPreference.java	(revision 1195)
@@ -84,5 +84,5 @@
         taggingPresetSources.setVisibleRowCount(3);
 
-        taggingPresetSources.setToolTipText(tr("The sources (url or filename) of tagging preset definition files. See http://josm.openstreetmap.de/wiki/TaggingPresets for help."));
+        taggingPresetSources.setToolTipText(tr("The sources (URL or filename) of tagging preset definition files. See http://josm.openstreetmap.de/wiki/TaggingPresets for help."));
         addAnno.setToolTipText(tr("Add a new tagging preset source to the list."));
         deleteAnno.setToolTipText(tr("Delete the selected source from the list."));
Index: trunk/src/org/openstreetmap/josm/io/DiffResultReader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/DiffResultReader.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/io/DiffResultReader.java	(revision 1195)
@@ -70,5 +70,5 @@
             } catch (NullPointerException x) {
                 x.printStackTrace(); // SAXException does not chain correctly
-                throw new SAXException(tr("NullPointerException, Possibly some missing tags."), x);
+                throw new SAXException(tr("NullPointerException, possibly some missing tags."), x);
             }
         }
Index: trunk/src/org/openstreetmap/josm/io/OsmReader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmReader.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/io/OsmReader.java	(revision 1195)
@@ -201,5 +201,5 @@
                          Collection<RelationMemberData> list = relations.get(current);
                          if (list == null)
-                              throw new SAXException(tr("Found <member> tag on non-relation."));
+                              throw new SAXException(tr("Found <member> element in non-relation."));
                          RelationMemberData emd = new RelationMemberData();
                          emd.relationMember = new RelationMember();
@@ -223,5 +223,5 @@
                } catch (NullPointerException x) {
                     x.printStackTrace(); // SAXException does not chain correctly
-                    throw new SAXException(tr("NullPointerException, Possibly some missing tags."), x);
+                    throw new SAXException(tr("NullPointerException, possibly some missing tags."), x);
                }
           }
@@ -460,5 +460,5 @@
           } catch (NumberFormatException e) {
                e.printStackTrace();
-               throw new SAXException(tr("Illformed Node id"));
+               throw new SAXException(tr("Ill-formed node id"));
           }
 
Index: trunk/src/org/openstreetmap/josm/io/OsmServerWriter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmServerWriter.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/io/OsmServerWriter.java	(revision 1195)
@@ -114,5 +114,5 @@
         while (useChangesets && comment == null) {
             comment = JOptionPane.showInputDialog(Main.parent,
-                 tr("Provide a brief comment as to the changes to you are uploading:"),
+                 tr("Provide a brief comment for the changes you are uploading:"),
                  tr("Commit comment"), JOptionPane.QUESTION_MESSAGE);
             if (comment == null)
Index: trunk/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java	(revision 1195)
@@ -114,5 +114,5 @@
                     p.add(new JLabel("<html>" + tr("Please report a ticket at {0}","http://josm.openstreetmap.de/newticket") +
                     "<br>" + tr("Include your steps to get to the error (as detailed as possible)!") +
-                    "<br>" + tr("Try updating to the newest version of JOSM and all plugin before reporting a bug.") +
+                    "<br>" + tr("Try updating to the newest version of JOSM and all plugins before reporting a bug.") +
                     "<br>" + tr("Be sure to include the following information:") + "</html>"), GBC.eol());
                     try {
Index: trunk/src/org/openstreetmap/josm/tools/PlatformHook.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/PlatformHook.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/tools/PlatformHook.java	(revision 1195)
@@ -2,5 +2,4 @@
 package org.openstreetmap.josm.tools;
 
-import static org.openstreetmap.josm.tools.I18n.tr;
 import org.openstreetmap.josm.tools.Shortcut;
 
Index: trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java	(revision 1195)
@@ -2,5 +2,4 @@
 package org.openstreetmap.josm.tools;
 
-import static org.openstreetmap.josm.tools.I18n.tr;
 import org.openstreetmap.josm.tools.Shortcut;
 import org.openstreetmap.josm.Main;
Index: trunk/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java	(revision 1194)
+++ trunk/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java	(revision 1195)
@@ -2,5 +2,4 @@
 package org.openstreetmap.josm.tools;
 
-import static org.openstreetmap.josm.tools.I18n.tr;
 import org.openstreetmap.josm.tools.Shortcut;
 import org.openstreetmap.josm.Main;
