// create a copy of the bizobj IFormatter formatter = new BinaryFormatter(); MemoryStream stream = new MemoryStream(); if (bizobj != null) { // Save a binary copy of the original information // for use to restore the original info when the user // clicks on the cancel button formatter.Serialize(stream, bizobj); } ... // this is how to restore the copy if(stream.Length > 0) { stream.Position = 0; bizobjCopy = (BizObj)formatter.Deserialize(stream)); }Now, there might be some problems doing it this way because in MM.NET the business object is derived from Component and your business objects have to be marked serializable. And you might have extra work to do if your business objects are tied together with an eventing mechanism instead of collections. But its worth a try before you start coding all the details.