Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java	(revision 1623)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java	(revision 1624)
@@ -341,10 +341,15 @@
             RelationMember way1 = null;
             RelationMember way2 = null;
-            while (m != null) {
+            int depth = 0;
+
+            while (m != null && depth < 10) {
                 if (m.member instanceof Way) {
                     way1 = m;
                     break;
                 } else if (m.member instanceof Relation) {
+                    if (m.member == this.relation)
+                        break;
                     m = ((Relation)m.member).lastMember();
+                    depth++;
                 } else {
                     break;
@@ -355,10 +360,14 @@
                 while (next < clone.members.size()) {
                     m = clone.members.get(next++);
-                    while (m != null) {
+                    depth = 0;
+                    while (m != null && depth < 10) {
                         if (m.member instanceof Way) {
                             way2 = m;
                             break;
                         } else if (m.member instanceof Relation) {
+                            if (m.member == this.relation)
+                                break;
                             m = ((Relation)(m.member)).firstMember();
+                            depth++;
                         } else {
                             break;
