ok, solved this one...
Need to declare each object as a new variable - compound statements like :
string str = applicationObject.CurrentProject.Name;
create hidden objects that do not have their reference count decremented during the normal garbage collection process, preventing the app from closing.
Thank you to knowledge base article 317109