diff --git a/lib/jsi/base.rb b/lib/jsi/base.rb
index <HASH>..<HASH> 100644
--- a/lib/jsi/base.rb
+++ b/lib/jsi/base.rb
@@ -443,11 +443,8 @@ module JSI
     def jsi_modified_copy(&block)
       if @jsi_ptr.root?
         modified_document = @jsi_ptr.modified_document_copy(@jsi_document, &block)
-        self.class.new(Base::NOINSTANCE,
-          jsi_document: modified_document,
-          jsi_ptr: @jsi_ptr,
-          jsi_schema_base_uri: @jsi_schema_base_uri,
-          jsi_schema_resource_ancestors: @jsi_schema_resource_ancestors, # this can only be empty but included for consistency
+        jsi_schemas.new_jsi(modified_document,
+          uri: jsi_schema_base_uri,
         )
       else
         modified_jsi_root_node = @jsi_root_node.jsi_modified_copy do |root|
Base#jsi_modified_copy reinstantiates the root with SchemaSet#new_jsi