retaining the block because it gets released too early