This Block_copy is still necessary, since you're adding it to an array. (The retain that addObject does isn't enough when the block is still sitting on the stack.)