             }
 
             if super.ready {
-                evaluateConditions()
+                return evaluateConditions()
             }
 
             // Until conditions have been evaluated, we're not ready

            switch (self, other) {
            case (.Initialized, .Pending),
                (.Pending, .EvaluatingConditions),
                (.Pending, .Finishing),
                (.EvaluatingConditions, .Ready),
                (.Ready, .Executing),

        state = .Pending
    }

    private func evaluateConditions() -> Bool {
        assert(state == .Pending && cancelled == false, "\(__FUNCTION__) was called out of order.")
        if conditions.count > 0 {
            state = .EvaluatingConditions
            OperationConditionEvaluator.evaluate(conditions, operation: self) { errors in
                self._internalErrors.appendContentsOf(errors)
                self.state = .Ready
            }
            return false
        }
        else {
            state = .Ready
            return true
        }
    }

