Index: /trunk/src/org/openstreetmap/josm/actions/AlignInLineAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/AlignInLineAction.java	(revision 12526)
+++ /trunk/src/org/openstreetmap/josm/actions/AlignInLineAction.java	(revision 12527)
@@ -173,4 +173,5 @@
         List<Node> selectedNodes = new ArrayList<>(ds.getSelectedNodes());
         List<Way> selectedWays = new ArrayList<>(ds.getSelectedWays());
+        selectedWays.removeIf(OsmPrimitive::isIncomplete);
 
         try {
Index: /trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java	(revision 12526)
+++ /trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java	(revision 12527)
@@ -107,4 +107,9 @@
         // remove duplicates, preserving order
         ways = new LinkedHashSet<>(ways);
+        // remove incomplete ways
+        ways.removeIf(OsmPrimitive::isIncomplete);
+        // we need at least two ways
+        if (ways.size() < 2)
+            return null;
 
         List<DataSet> dataSets = ways.stream().map(Way::getDataSet).distinct().collect(Collectors.toList());
@@ -245,6 +250,6 @@
         int numWays = 0;
         for (OsmPrimitive osm : selection) {
-            if (osm instanceof Way) {
-                numWays++;
+            if (osm instanceof Way && !osm.isIncomplete() && ++numWays >= 2) {
+                break;
             }
         }
Index: /trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java	(revision 12526)
+++ /trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java	(revision 12527)
@@ -194,5 +194,7 @@
                 nodeList.add((Node) p);
             } else if (p instanceof Way) {
-                wayDataList.add(new WayData(((Way) p).getNodes()));
+                if (!p.isIncomplete()) {
+                    wayDataList.add(new WayData(((Way) p).getNodes()));
+                }
             } else {
                 throw new InvalidUserInputException(tr("Selection must consist only of ways and nodes."));
Index: /trunk/src/org/openstreetmap/josm/actions/ReverseWayAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/ReverseWayAction.java	(revision 12526)
+++ /trunk/src/org/openstreetmap/josm/actions/ReverseWayAction.java	(revision 12527)
@@ -10,4 +10,5 @@
 import java.util.Collection;
 import java.util.Collections;
+import java.util.LinkedHashSet;
 import java.util.LinkedList;
 import java.util.List;
@@ -113,5 +114,6 @@
             return;
 
-        final Collection<Way> sel = ds.getSelectedWays();
+        final Collection<Way> sel = new LinkedHashSet<>(ds.getSelectedWays());
+        sel.removeIf(w -> w.isIncomplete());
         if (sel.isEmpty()) {
             new Notification(
@@ -163,5 +165,5 @@
     @Override
     protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
-        setEnabled(selection.stream().anyMatch(Way.class::isInstance));
+        setEnabled(selection.stream().anyMatch(o -> o instanceof Way && !o.isIncomplete()));
     }
 }
Index: /trunk/src/org/openstreetmap/josm/actions/SimplifyWayAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/SimplifyWayAction.java	(revision 12526)
+++ /trunk/src/org/openstreetmap/josm/actions/SimplifyWayAction.java	(revision 12527)
@@ -102,4 +102,5 @@
         try {
             List<Way> ways = OsmPrimitive.getFilteredList(ds.getSelected(), Way.class);
+            ways.removeIf(OsmPrimitive::isIncomplete);
             if (ways.isEmpty()) {
                 alertSelectAtLeastOneWay();
