         case .Pending:
             // If the operation has been cancelled, "isReady" should return true
             guard !cancelled else {
+                state = .Ready
                 return true
             }
             

            case (.Pending, .EvaluatingConditions):
                return true
            case (.Pending, .Finishing) where cancelled:
                return true
            case (.EvaluatingConditions, .Ready):
                return true

    class func keyPathsForValuesAffectingIsFinished() -> Set<NSObject> {
        return ["state"]
    }
    
    class func keyPathsForValuesAffectingIsCancelled() -> Set<NSObject> {
        return ["cancelledState"]
    }
    
    // MARK: State Management
    
    private enum State: Int, Comparable {
