diff --git a/src/org/openstreetmap/josm/command/AddPrimitivesCommand.java b/src/org/openstreetmap/josm/command/AddPrimitivesCommand.java
index c3a9ab7..02b73dd 100644
--- a/src/org/openstreetmap/josm/command/AddPrimitivesCommand.java
+++ b/src/org/openstreetmap/josm/command/AddPrimitivesCommand.java
@@ -100,6 +100,7 @@ public class AddPrimitivesCommand extends Command {
                     newPrimitives.get(i).load(data.get(i));
                 }
             }
+            newPrimitives.stream().forEach(p -> p.setModified(true));
         } else { // redo
             // When redoing this command, we have to add the same objects, otherwise
             // a subsequent command (e.g. MoveCommand) cannot be redone.
diff --git a/test/unit/org/openstreetmap/josm/command/AddPrimitivesCommandTest.java b/test/unit/org/openstreetmap/josm/command/AddPrimitivesCommandTest.java
index bb9448e..cde24a9 100644
--- a/test/unit/org/openstreetmap/josm/command/AddPrimitivesCommandTest.java
+++ b/test/unit/org/openstreetmap/josm/command/AddPrimitivesCommandTest.java
@@ -3,7 +3,6 @@ package org.openstreetmap.josm.command;
 
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
@@ -217,10 +216,10 @@ public class AddPrimitivesCommandTest {
         assertEquals(3, layer1.data.allPrimitives().size());
         assertEquals(2, layer1.data.getNodes().size());
         assertEquals(1, layer1.data.getWays().size());
-        assertEquals(0, layer1.data.allModifiedPrimitives().size());
+        assertEquals(3, layer1.data.allModifiedPrimitives().size());
         for (OsmPrimitive n : layer1.data.allPrimitives()) {
             assertEquals("test", n.get("test"));
-            assertFalse(n.isModified());
+            assertTrue(n.isModified());
         }
 
         for (Node n : layer1.data.getNodes()) {
