diff --git a/bindings/pyroot_experimental/PyROOT/src/TClonesArrayPyz.cxx b/bindings/pyroot_experimental/PyROOT/src/TClonesArrayPyz.cxx
index 112c5d1c4aa544935dcf7b8ed102c1d6489f637a..1afb7dfb1083c1887324a6e1bdb021435152d04f 100644
--- a/bindings/pyroot_experimental/PyROOT/src/TClonesArrayPyz.cxx
+++ b/bindings/pyroot_experimental/PyROOT/src/TClonesArrayPyz.cxx
@@ -27,8 +27,8 @@ using namespace CPyCppyy;
 // Clone an object into a position of a TClonesArray
 static TObject *CloneObjectInPlace(const TObject *obj, TClonesArray *cla, int index)
 {
-   // Create object with default constructor at index
-   char *arrObj = (char *)cla->New(index);
+   // Get or create object with default constructor at index
+   char *arrObj = (char *)cla->ConstructedAt(index);
    if (!arrObj) {
       PyErr_Format(PyExc_RuntimeError, "Failed to create new object at index %d of TClonesArray", index);
       return nullptr;