Index: tests/test_id_lifecycle.py
===================================================================
--- tests/test_id_lifecycle.py	(revision 02d288d33183db0124582a151433ccd6cf55cac7)
+++ tests/test_id_lifecycle.py	(revision 33be5a0f6e1f5aa9c9c28a845407bba23932e13b)
@@ -94,4 +94,16 @@
     assert q.flexo_id.version == 1
 
+def test_clone_new_base_sets_origin(radio_question):
+    q = radio_question
+    q.approve()
+    q.sign()
+    q.publish()
+    old_id = str(q.flexo_id)
+    q.obsolete()
+    q.clone_new_base()
+    assert q.origin == old_id
+    assert q.state == EntityState.DRAFT
+    assert q.flexo_id.version == 1
+    assert q.flexo_id != old_id
 
 def test_mass_version_increments_until_obsolete(radio_question):
Index: tests/test_id_stress.py
===================================================================
--- tests/test_id_stress.py	(revision 02d288d33183db0124582a151433ccd6cf55cac7)
+++ tests/test_id_stress.py	(revision 33be5a0f6e1f5aa9c9c28a845407bba23932e13b)
@@ -14,5 +14,5 @@
 def test_bulk_generation_uniqueness(domain):
     """
-    Generate 10,000 IDs and ensure uniqueness using safe_generate().
+    Generate 100,000 IDs and ensure uniqueness using safe_generate().
     If a collision occurs, safe_generate() must resolve it automatically
     via salt + date adjustment.
@@ -20,5 +20,5 @@
     etype = EntityType.QUESTION
     estate = EntityState.DRAFT
-    seeds = [f"question {i}" for i in range(4000000)]
+    seeds = [f"question {i}" for i in range(100000)]
 
     # Simulate a simple in-memory repository for collision detection
