Hi Maurizio, This is simplest test case: class Array<A> { private A[] data; Array(A[] data) { this.data = data; } public static <A, E extends Array<A>> Array<A> dup(E e){ return new Array<A>(e.data); } } error: data has private access in Array this works in jdk6. Best Regards Ali Ebrahimi