Since nobody's yet asked.... What type would .dup and .idup return? The best choice I can see is to make .dup return T[new] and .idup return invariant(T)[]. Stewart.