DeepCopy is ok, but do not copy all the properties one-by-one. Keep MemberwiseClone() and call DeepCopy additionally on cloned object. If sb. would add a property, this is number one source of bug.