Index: trunk/src/org/openstreetmap/josm/actions/upload/CyclicUploadDependencyException.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/upload/CyclicUploadDependencyException.java	(revision 12364)
+++ trunk/src/org/openstreetmap/josm/actions/upload/CyclicUploadDependencyException.java	(revision 12365)
@@ -5,4 +5,5 @@
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Stack;
@@ -14,5 +15,5 @@
  */
 public class CyclicUploadDependencyException extends Exception {
-    private final Stack<Relation> cycle;
+    private final List<Relation> cycle;
 
     /**
@@ -21,5 +22,5 @@
      */
     public CyclicUploadDependencyException(Stack<Relation> cycle) {
-        this.cycle = cycle;
+        this.cycle = new ArrayList<>(cycle);
     }
 
@@ -56,5 +57,5 @@
      */
     public List<Relation> getCyclicUploadDependency() {
-        return new ArrayList<>(cycle);
+        return Collections.unmodifiableList(cycle);
     }
 }
Index: trunk/src/org/openstreetmap/josm/actions/upload/RelationUploadOrderHook.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/upload/RelationUploadOrderHook.java	(revision 12364)
+++ trunk/src/org/openstreetmap/josm/actions/upload/RelationUploadOrderHook.java	(revision 12365)
@@ -6,4 +6,5 @@
 import java.awt.BorderLayout;
 import java.awt.Dimension;
+import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -66,5 +67,5 @@
      */
     protected void warnCyclicUploadDependency(CyclicUploadDependencyException e) {
-        List<Relation> dep = e.getCyclicUploadDependency();
+        List<Relation> dep = new ArrayList<>(e.getCyclicUploadDependency());
         Relation last = dep.get(dep.size() -1);
         Iterator<Relation> it = dep.iterator();
