Index: /trunk/src/org/openstreetmap/josm/command/Command.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/Command.java	(revision 11242)
+++ /trunk/src/org/openstreetmap/josm/command/Command.java	(revision 11243)
@@ -340,5 +340,5 @@
     @Override
     public int hashCode() {
-        return Objects.hash(cloneMap, layer);
+        return Objects.hash(cloneMap, layer, data);
     }
 
Index: /trunk/src/org/openstreetmap/josm/tools/Geometry.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/Geometry.java	(revision 11242)
+++ /trunk/src/org/openstreetmap/josm/tools/Geometry.java	(revision 11243)
@@ -24,4 +24,5 @@
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.BBox;
+import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.MultipolygonBuilder;
 import org.openstreetmap.josm.data.osm.MultipolygonBuilder.JoinedPolygon;
@@ -35,4 +36,5 @@
 import org.openstreetmap.josm.data.projection.Projection;
 import org.openstreetmap.josm.data.projection.Projections;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 
 /**
@@ -84,4 +86,7 @@
             changedWays[pos] = false;
         }
+
+        OsmDataLayer layer = Main.getLayerManager().getEditLayer();
+        DataSet dataset = ways.iterator().next().getDataSet();
 
         //iterate over all way pairs and introduce the intersections
@@ -189,5 +194,5 @@
 
                                 if (intNode == newNode) {
-                                    cmds.add(new AddCommand(intNode));
+                                    cmds.add(layer != null ? new AddCommand(layer, intNode) : new AddCommand(dataset, intNode));
                                 }
                             }
