Index: trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateRelation.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateRelation.java	(revision 4289)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateRelation.java	(revision 4290)
@@ -176,5 +176,5 @@
     public void visit(Relation r)
     {
-        if( !r.isUsable() )
+        if (!r.isUsable() || r.hasIncompleteMembers())
             return;
         List<RelationMember> rMembers=r.getMembers();
Index: trunk/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java	(revision 4289)
+++ trunk/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java	(revision 4290)
@@ -300,5 +300,5 @@
 
             if (relation instanceof Relation) {
-                if (relationHasIncompleteMember((Relation) relation)) {
+                if (((Relation) relation).hasIncompleteMembers()) {
                     name += ", "+tr("incomplete");
                 }
@@ -364,5 +364,5 @@
                 return (r1.getMembersCount() > r2.getMembersCount())?1:-1;
 
-            comp = Boolean.valueOf(relationHasIncompleteMember(r1)).compareTo(Boolean.valueOf(relationHasIncompleteMember(r2)));
+            comp = Boolean.valueOf(r1.hasIncompleteMembers()).compareTo(Boolean.valueOf(r2.hasIncompleteMembers()));
             if (comp != 0)
                 return comp;
@@ -443,12 +443,4 @@
         }
         return null;
-    }
-
-    private boolean relationHasIncompleteMember(Relation relation) {
-        for (RelationMember m : relation.getMembers()) {
-            if (m.getMember().isIncomplete())
-                return true;
-        }
-        return false;
     }
 
