> @myModel = Model.new > @myData = DataObject.new > > newModel = @myData.generate_new_model(@myModel) > > > def generate_new_model(modelSource) > outputModel = Model.new So far, so good. At the minute, outputModel references a brand new Model. > outputModel = modelSource Now, however, it references the same model as modelSource. Oops. > outputModel.values = "new values" And here you've changed the values of the Model referenced by outputModel and modelSource. > outputModel > end Am I right in guessing that you're trying to put a copy of modelSource into outputModel? If so, you might want to take a look at this: http://www.rubygarden.org/ruby?Make_A_Deep_Copy_Of_An_Object Depending on the structure of the Model class, it might be better to give it its own copy method. matthew smillie.