Казалось бы несложная вещь, а вот не могу решить

Код AS1/AS2:
import DEmptyClass;
stop ();
var tst:DEmptyClass=new DEmptyClass();
var mouseListener:Object = new Object();
Mouse.addListener(mouseListener);
var stack:Array=Array();
//Нажатие кнопки мыши
mouseListener.onMouseDown = function()
{
tst._x=_root._xmouse;
tst._y=_root._ymouse;
stack.push(tst);
tst._x=0; tst._y=1;
trace(tst._x+" "+tst._y);
tst=DEmptyClass(stack.pop());
trace(tst._x +" "+ tst._y);
}
Извлеченный из массива объект имеет координаты 0 и 1. А как же сохранить объект так, чтобы изменения tst на сохраненный не влияли.
То есть нужно сохранение по значению