Это стандартное поведение во многих языках. Когда вы делаете tempObj = obj, вы НЕ создаете дублирующийся объект. Вы создаете другую ссылку на тот же объект.
Я не думаю, что вы можете изменить это поведение, и, конечно, я не думаю, что вы должны:)
Вам нужно создать еще один объект, дубликат исходного объекта. Вы можете реализовать функцию для этого. Может быть, это может помочь
http://blog.comtaste.com/2007/10/improving_object_copy.html
Удачи!