diff --git a/arkindex/documents/serializers/elements.py b/arkindex/documents/serializers/elements.py
index bd9ef10be06b64157c47e1fa6b3c5856c486123f..2125a6b08961227d1428e0f273acd6e92331d15b 100644
--- a/arkindex/documents/serializers/elements.py
+++ b/arkindex/documents/serializers/elements.py
@@ -1006,6 +1006,7 @@ class ElementChildrenCreateSerializer(serializers.Serializer):
                 ElementPath.objects
                 .using("default")
                 .filter(path__in=new_parent_paths)
+                .values("path")
                 .annotate(max_ordering=Max("ordering") + 1)
                 .values_list("path", "max_ordering")
             )
diff --git a/arkindex/documents/tests/test_bulk_children.py b/arkindex/documents/tests/test_bulk_children.py
index ea4cc6ab8153780af25d45efb292eee869286015..4850b33add413f948fe8d6c57d560d547363d6e1 100644
--- a/arkindex/documents/tests/test_bulk_children.py
+++ b/arkindex/documents/tests/test_bulk_children.py
@@ -149,6 +149,8 @@ class TestElementChildrenCreate(FixtureAPITestCase):
         other_parent = self.corpus.elements.create(type=self.volume2.type, name="Other parent")
         self.page2.add_parent(other_parent)
         self.page3.add_parent(other_parent)
+        page4 = self.corpus.elements.create(type=self.page3.type, name="Page 4")
+        page4.add_parent(self.volume2)
 
         self.assertQuerySetEqual(
             self.volume2.paths.values_list("path", flat=True),
@@ -170,6 +172,10 @@ class TestElementChildrenCreate(FixtureAPITestCase):
                 ([self.volume1.id, self.volume2.id], 2),
             ],
         )
+        self.assertQuerySetEqual(
+            page4.paths.values_list("path", "ordering"),
+            [([self.volume1.id, self.volume2.id], 3)],
+        )
 
         with force_constraints_immediate(), self.assertNumQueries(10):
             response = self.client.post(
@@ -187,7 +193,7 @@ class TestElementChildrenCreate(FixtureAPITestCase):
         self.assertQuerySetEqual(
             self.page1.paths.values_list("path", "ordering"),
             # The top-level path is removed, and the page is back in the volume, in last position
-            [([self.volume1.id, self.volume2.id], 5)],
+            [([self.volume1.id, self.volume2.id], 6)],
         )
         self.assertQuerySetEqual(
             self.page2.paths.values_list("path", "ordering").order_by("ordering"),
@@ -195,7 +201,7 @@ class TestElementChildrenCreate(FixtureAPITestCase):
                 # The path to the other parent is left untouched
                 ([other_parent.id], 0),
                 # The page is back in the volume, in second position
-                ([self.volume1.id, self.volume2.id], 4),
+                ([self.volume1.id, self.volume2.id], 5),
             ],
         )
         self.assertQuerySetEqual(
@@ -204,6 +210,6 @@ class TestElementChildrenCreate(FixtureAPITestCase):
                 # The path to the other parent is left untouched
                 ([other_parent.id], 1),
                 # The last page got reordered
-                ([self.volume1.id, self.volume2.id], 3),
+                ([self.volume1.id, self.volume2.id], 4),
             ],
         )