     }
     
     private func processImage(image: Image?, error: ErrorType?, forImageTask imageTask: ImageTask) {
-        if let image = image, processor = self.processorForRequest(imageTask.request) {
+        if let image = image, processor = self.processorForRequest(imageTask.request) where self.delegate.imageLoader(self, shouldProcessImage: image) {
             let operation = NSBlockOperation { [weak self] in
                 self?.imageTask(imageTask, didCompleteWithImage: processor.processImage(image), error: error)
             }

    private var sessionTasks = [ImageRequestKey : ImageSessionTask]()
    private let queue = dispatch_queue_create("ImageLoader-InternalSerialQueue", DISPATCH_QUEUE_SERIAL)
    
    public init(configuration: ImageLoaderConfiguration) {
        self.configuration = configuration
    }
    
    public func resumeLoadingForTask(task: ImageTask) {

    private func processorForRequest(request: ImageRequest) -> ImageProcessing? {
        var processors = [ImageProcessing]()
        #if !os(OSX)
        if request.shouldDecompressImage, let decompressor = self.delegate.imageLoader(self, decompressorForRequest: request) {
            processors.append(decompressor)
        }
        #endif
        if let processor = request.processor {
