Index: /trunk/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java	(revision 7304)
+++ /trunk/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java	(revision 7305)
@@ -7,4 +7,5 @@
 import static org.openstreetmap.josm.tools.I18n.trn;
 
+import java.awt.ComponentOrientation;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -15,4 +16,5 @@
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
@@ -220,4 +222,17 @@
     public String format(Way way) {
         StringBuilder name = new StringBuilder();
+
+        char mark = 0;
+        // If current language is left-to-right (almost all languages)
+        if (ComponentOrientation.getOrientation(Locale.getDefault()).isLeftToRight()) {
+            // will insert Left-To-Right Mark to ensure proper display of text in the case when object name is right-to-left
+            mark = '\u200E';
+        } else {
+            // otherwise will insert Right-To-Left Mark to ensure proper display in the opposite case
+            mark = '\u200F';
+        }
+        // Initialize base direction of the string
+        name.append(mark);
+
         if (way.isIncomplete()) {
             name.append(tr("incomplete"));
@@ -235,12 +250,10 @@
                 }
                 if (n == null) {
-                    n =
-                            (way.get("highway") != null) ? tr("highway") :
+                    n =     (way.get("highway") != null) ? tr("highway") :
                                 (way.get("railway") != null) ? tr("railway") :
                                     (way.get("waterway") != null) ? tr("waterway") :
                                             (way.get("landuse") != null) ? tr("landuse") : null;
                 }
-                if(n == null)
-                {
+                if (n == null) {
                     String s;
                     if((s = way.get("addr:housename")) != null) {
@@ -276,5 +289,5 @@
             /* I18n: count of nodes as parameter */
             String nodes = trn("{0} node", "{0} nodes", nodesNo, nodesNo);
-            name.append(" (").append(nodes).append(")");
+            name.append(mark).append(" (").append(nodes).append(")");
         }
         decorateNameWithId(name, way);
