diff --git a/src/org/openstreetmap/josm/data/osm/User.java b/src/org/openstreetmap/josm/data/osm/User.java
index 738c62e..0d6bcc0 100644
--- a/src/org/openstreetmap/josm/data/osm/User.java
+++ b/src/org/openstreetmap/josm/data/osm/User.java
@@ -5,13 +5,10 @@
 
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.HashSet;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
-import java.util.Set;
-
-import org.openstreetmap.josm.tools.Utils;
 
 /**
  * A simple class to keep a list of user names.
@@ -134,7 +126,7 @@ public static User getAnonymous() {
     }
 
     /** the user name */
-    private final Set<String> names = new HashSet<>();
+    private final LinkedHashSet<String> names = new LinkedHashSet<>();
     /** the user id */
     private final long uid;
 
@@ -144,7 +136,7 @@ public static User getAnonymous() {
      * @return the user name. Never <code>null</code>, but may be the empty string
      */
     public String getName() {
-        return Utils.join("/", names);
+        return names.isEmpty() ? "" : names.iterator().next();
     }
 
     /**
@@ -165,6 +157,16 @@ public void addName(String name) {
         names.add(name);
     }
 
+    public void setPreferredName(String name) {
+        if (names.size() == 1 && names.contains(name)) {
+            return;
+        }
+        final LinkedHashSet<String> allNames = new LinkedHashSet<>(names);
+        names.clear();
+        names.add(name);
+        names.addAll(allNames);
+    }
+
     /**
      * Returns true if the name is in the names list
      *
diff --git a/src/org/openstreetmap/josm/io/AbstractParser.java b/src/org/openstreetmap/josm/io/AbstractParser.java
index e947d40..6d0d796 100644
--- a/src/org/openstreetmap/josm/io/AbstractParser.java
+++ b/src/org/openstreetmap/josm/io/AbstractParser.java
@@ -116,6 +116,7 @@ protected final HistoryOsmPrimitive createPrimitive(Attributes atts, OsmPrimitiv
         if (userStr != null) {
             if (uid != null) {
                 user = User.createOsmUser(uid, userStr);
+                user.setPreferredName(userStr);
             } else {
                 user = User.createLocalUser(userStr);
             }
