Hi Jeff, I think this is the intention of the code, that the assignment function is called precisely only once and it is generic, in a sense that it can store any value, including nil and 'false' Now, you are correct that what you describe there is the behavior of the code 'to be replaced' by 'once'. The intention is the same, namely, the first call returned value should be cached and the subsequence call should just return that cached value, never to assigned again. The original code, however, has drawback: if the cached value is nil or 'false', the assignment will be made again. The 'once' code is an improvement over the original code that 1) it's more elegant, 2) and it trully assigns only once, even with nil or 'false' cached value. -andre _________________________________________________________________ Type your favorite song.Get a customized station.Try MSN Radio powered by Pandora. http://radio.msn.com/?icid=T002MSN03A07001