есть такой кусок кода:

Код AS3:
if (loader != null) {
Logger.debug("remove 3d loader");
removeChild(loader);
loader = null;
max3ds = null;
}
Logger.debug("loader: ", loader);
max3ds = new Max3DS();
max3ds.centerMeshes = true;
loader = new Loader3D();
loader.loadGeometry(fileName, max3ds);
addChild(loader);
код может использоваться повторно, поэтому перед новой загрузкой идёт проверка на существование лоадера и попытка его удалить в случае, если он не нуль
проблема в том, что при повторном выполнении кода, если модель уже есть на сцене, лоадер вроде как удаляется со сцены и обнуляется (логгер показывает что часть кода с удалением и обулением выполняется, а сам объект становится нулём), но визуально 3д объект остаётся виден на сцене.
Более того, при повторном использовании этой же переменной loader, мы получаем 2 объекта: старый неудалённый и новый вновь созданный.
Как бороться с этой мистикой?