' Clone this object Public Function Clone() As Object Implements System.ICloneable.Clone Dim loData As Data = DirectCast(MemberwiseClone(), Data) ' Add to the cloning object the dataset as well ' MemberwiseClone only copies value types ' So just returning Return MyBase.MemberwiseClone() would not do if after the cloning the access to the original dataset is needed loData.oDataSet = loData.oDataSet.Copy() Return loData End Function...this does not copy the dataset as is. It gives all kind of various errors as soon as I add that line. If I return before the dataset line, I do not have the error, but, of course, the dataset is not cloned and if the client class cloned object changes the dataset, then I have problems. This is why I need to find a proper way to clone the dataset as well. Would you know why that line you suggested does not provide the same image as the base object dataset?