diff --git a/src/box/alter.cc b/src/box/alter.cc
index 11560acfdc4058aac4fcfe364cdc98c2758453cd..9b29fac379c5ce16e4d08ecf55ff2b692892a396 100644
--- a/src/box/alter.cc
+++ b/src/box/alter.cc
@@ -1400,20 +1400,26 @@ on_replace_dd_truncate(struct trigger * /* trigger */, void *event)
 	struct tuple *old_tuple = stmt->old_tuple;
 	struct tuple *new_tuple = stmt->new_tuple;
 
-	if (old_tuple == NULL || new_tuple == NULL) {
-		/* Space create or drop. */
+	if (new_tuple == NULL) {
+		/* Space drop - nothing to do. */
 		return;
 	}
 
-	/*
-	 * Truncate counter is updated - truncate the space.
-	 */
 	uint32_t space_id =
 		tuple_field_u32_xc(new_tuple, BOX_TRUNCATE_FIELD_SPACE_ID);
 	uint64_t truncate_count =
 		tuple_field_u64_xc(new_tuple, BOX_TRUNCATE_FIELD_COUNT);
 	struct space *old_space = space_cache_find(space_id);
 
+	if (old_tuple == NULL) {
+		/* Space create - initialize truncate_count. */
+		old_space->truncate_count = truncate_count;
+		return;
+	}
+
+	/*
+	 * Truncate counter is updated - truncate the space.
+	 */
 	struct truncate_space *truncate =
 		region_calloc_object_xc(&fiber()->gc, struct truncate_space);
 
diff --git a/test/engine/truncate.result b/test/engine/truncate.result
index 50bc706f89762a0774ff7e9d195b68cc496a5524..91153e2f17ea12f01d9f96868a5130a18b719a61 100644
--- a/test/engine/truncate.result
+++ b/test/engine/truncate.result
@@ -248,6 +248,9 @@ box.snapshot()
 ---
 - ok
 ...
+_ = s1:insert{321, 123}
+---
+...
 s2:truncate()
 ---
 ...
@@ -291,10 +294,12 @@ s3 = box.space.test3
 s1.index.i1:select()
 ---
 - - [123, 321]
+  - [321, 123]
 ...
 s1.index.i2:select()
 ---
-- - [123, 321]
+- - [321, 123]
+  - [123, 321]
 ...
 s2.index.i1:select()
 ---
diff --git a/test/engine/truncate.test.lua b/test/engine/truncate.test.lua
index 6dfd4b3ac829fe5001fd0a28d6ba0c301dc74df7..41f5694d19fbd5391674147736a5760398c65f61 100644
--- a/test/engine/truncate.test.lua
+++ b/test/engine/truncate.test.lua
@@ -112,6 +112,7 @@ _ = s2:insert{10, 30}
 _ = s2:insert{20, 20}
 _ = s2:insert{30, 10}
 box.snapshot()
+_ = s1:insert{321, 123}
 s2:truncate()
 _ = s2:insert{456, 654}
 s3 = box.schema.create_space('test3', {engine = engine})