diff --git a/Source/NSOperation.m b/Source/NSOperation.m index 0040f810d..649afbfb0 100644 --- a/Source/NSOperation.m +++ b/Source/NSOperation.m @@ -206,7 +206,10 @@ static NSArray *empty = nil; { NSOperation *op; - [self removeObserver: self forKeyPath: @"isFinished"]; + if (!internal->finished) + { + [self removeObserver: self forKeyPath: @"isFinished"]; + } while ((op = [internal->dependencies lastObject]) != nil) { [self removeDependency: op];