Normally when procedure A calls procedures B, C, .., Z, the environment of procedure A is only discarded when procedure Z returns and procedure A ITself terminates. Using last call optimisation, A' s environment is discarded as Z is called. This allows arbITrarily deep nesting of procedure calls wIThout consuming memory to store useless environments. A special case of this is tail recursion optimisation where the last procedure called is the calling procedure ITself.