Pulling in obj-c fast enumeration changes from @pizthewiz
use lastObject instead of first, since that will avoid (minor) array shuffling.