Index: /trunk/src/org/openstreetmap/josm/actions/JoinAreasAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/JoinAreasAction.java	(revision 2588)
+++ /trunk/src/org/openstreetmap/josm/actions/JoinAreasAction.java	(revision 2589)
@@ -459,7 +459,6 @@
         ArrayList<RelationRole> result = new ArrayList<RelationRole>();
         for (Relation r : Main.main.getCurrentDataSet().getRelations()) {
-            if (r.isDeleted() || r.isIncomplete()) {
+            if (r.isDeleted())
                 continue;
-            }
             for (RelationMember rm : r.getMembers()) {
                 if (rm.getMember() != osm) {
Index: /trunk/src/org/openstreetmap/josm/actions/UnGlueAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/UnGlueAction.java	(revision 2588)
+++ /trunk/src/org/openstreetmap/josm/actions/UnGlueAction.java	(revision 2589)
@@ -90,7 +90,6 @@
                 int count = 0;
                 for (Way w : OsmPrimitive.getFilteredList(n.getReferrers(), Way.class)) {
-                    if (w.isDeleted() || w.isIncomplete()) {
+                    if (!w.isUsable())
                         continue;
-                    }
                     count++;
                 }
@@ -308,7 +307,6 @@
         HashSet<String> rolesToReAdd = null;
         for (Relation r : OsmPrimitive.getFilteredList(originalNode.getReferrers(), Relation.class)) {
-            if (r.isDeleted() || r.isIncomplete()) {
+            if (r.isDeleted())
                 continue;
-            }
             newRel = null;
             rolesToReAdd = null;
Index: /trunk/src/org/openstreetmap/josm/data/osm/DataSetMerger.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/DataSetMerger.java	(revision 2588)
+++ /trunk/src/org/openstreetmap/josm/data/osm/DataSetMerger.java	(revision 2589)
@@ -145,6 +145,5 @@
         if (myWay == null)
             throw new RuntimeException(tr("Missing merge target for way with id {0}", other.getUniqueId()));
-        if (!myWay.isIncomplete())return;
-        if (myWay.isIncomplete() && other.getNodesCount() == 0) return;
+        if (!myWay.isIncomplete() || other.getNodesCount() == 0) return;
         for (Node n: myWay.getNodes()) {
             if (n.isIncomplete()) return;
@@ -154,11 +153,11 @@
 
     /**
-     * A way in the target dataset might be incomplete because at least of of its nodes is incomplete.
-     * The nodes might have become complete because a complete node was merged onto into in the
+     * A way in the target dataset might be incomplete because at least one of its nodes is incomplete.
+     * The nodes might have become complete because a complete node was merged into in the
      * merge operation.
-     * 
+     *
      * This method loops over all parent ways of such nodes and turns them into complete ways
      * if necessary.
-     * 
+     *
      * @param other
      */
