Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java	(revision 5415)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java	(revision 5416)
@@ -220,15 +220,12 @@
             }
             public void visit(Relation e) {
-                for (RelationMember em : e.getMembers()) {
-                    OsmPrimitive m = em.getMember();
-                    if (m instanceof Node || m instanceof Way) {
-                        m.visit(this);
-                    } else if (m instanceof Relation && !visited.contains(m)) {
-                        visited.add((Relation) m);
-                        try {
-                            m.visit(this);
-                        } finally {
-                            visited.remove(m);
+                if (!visited.contains(e)) {
+                    visited.add(e);
+                    try {
+                        for (RelationMember em : e.getMembers()) {
+                            em.getMember().visit(this);
                         }
+                    } finally {
+                        visited.remove(e);
                     }
                 }
