>lparameters taMyArray, tnPar2, tcPar3 >DoDefault(taMyArray, tnPar2, tcPar3) >* Gives error message: the passed parameter is no longer an array.If you hook into a function call then you should always forward by reference. The actual value vs. reference business is between your caller - who uses @ or (...) as they see fit - and the original callee (i.e. the function you are forwarding to) who will modify passed parameters or not, according to the interface specification. This is the only way to preserve semantics without knowing specifics and it automatically protects you against changes in the caller or in the called function. An added bonus is that no unnecessary copying of parameters is done (this can have a substantial impact on processing time if there is a substantial number of calls involved in your processing).