Index: trunk/src/org/openstreetmap/josm/data/osm/TagCollection.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/TagCollection.java	(revision 4745)
+++ trunk/src/org/openstreetmap/josm/data/osm/TagCollection.java	(revision 4746)
@@ -13,6 +13,6 @@
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.Set;
-import java.util.Map.Entry;
 
 /**
@@ -709,7 +709,13 @@
      */
     public String getJoinedValues(String key) {
+
+        // See #7201 combining ways screws up the order of ref tags
+        Set<String> originalValues = getValues();
+        if (originalValues.size() == 1)
+            return originalValues.iterator().next();
+
         StringBuilder buffer = new StringBuilder();
-        HashSet<String> valSet = new HashSet<String>();
-        for (String vs : getValues(key)) {
+        Set<String> valSet = new HashSet<String>();
+        for (String vs : originalValues) {
             valSet.addAll(Arrays.asList(vs.split(";")));
         }
