> Hmmm... I'll try overriding clone, and manually deal with the arrays:
>
> def clone
>    rslt = super.clone
> end
>
> This blows the stack, I believe because all methods are inherited
> virtually.

The method which must be overriden is initialize_copy

def initialize_copy(from)
  @arr1 = from.instance_eval('@arr1').clone
end

--
Olivier Renaud