I don't even understand where the "super" comes in here ? It wasn't a class that was extended from a super class ? public static class A implements Serializable { protected A clone() throws CloneNotSupportedException { return (A) super.clone(); } }