*>In this situation, I need to (1) check to see if an object exists * You spelled "loObject" as "loOption" in your posted code, that might cause a problem lParameter lcObjectClass Local loObject, loArray loObject = "o" + lcObjectClass IF TYPE("THIS." + loObject + ".array") = "U" THIS.AddObject(loObject, lcObjectClass) ENDIF *> Get array reference (is there a better way to do this? *> This works but seems a little clumsy.) *>loArray = "Session." + loObject + ".array" *>loArray = Evaluate(@loArray) * Not sure what you're trying to do. You might be better off with a new array lcArray = "Session." + loObject + ".array" =acopy(&lcArray, laArray) This.DoSomething(@laArray) && this does not work, array does not pass by reference