Oh, and also running the Dispose() method with the hasFailed set. That part's still good.