Index: /trunk/src/org/openstreetmap/josm/command/ChangeCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/ChangeCommand.java	(revision 6301)
+++ /trunk/src/org/openstreetmap/josm/command/ChangeCommand.java	(revision 6302)
@@ -11,6 +11,8 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
+import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.gui.DefaultNameFormatter;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.ImageProvider;
 
@@ -26,9 +28,9 @@
     private final OsmPrimitive newOsm;
 
-
     public ChangeCommand(OsmPrimitive osm, OsmPrimitive newOsm) {
         super();
         this.osm = osm;
         this.newOsm = newOsm;
+        sanityChecks();
     }
 
@@ -37,4 +39,16 @@
         this.osm = osm;
         this.newOsm = newOsm;
+        sanityChecks();
+    }
+    
+    private void sanityChecks() {
+        CheckParameterUtil.ensureParameterNotNull(osm, "osm");
+        CheckParameterUtil.ensureParameterNotNull(newOsm, "newOsm");
+        if (newOsm instanceof Way) {
+            // Do not allow to create empty ways (see #7465)
+            if (((Way)newOsm).getNodesCount() == 0) {
+                throw new IllegalArgumentException(tr("New way {0} has 0 nodes", newOsm));
+            }
+        }
     }
 
