             error = NSError(domain: Client.ErrorDomain, code: Int(searchResults.statusCode), userInfo: nil)
         }
         assert(content != nil || error != nil)
-        completionHandler(content: content, error: error)
+        return (content: content, error: error)
     }
     
     // ----------------------------------------------------------------------

    /// Same semantics as `Index.browse()`.
    ///
    @objc public func browseMirror(query: Query, completionHandler: CompletionHandler) -> NSOperation {
        let callingQueue = NSOperationQueue.currentQueue() ?? NSOperationQueue.mainQueue()
        let queryCopy = Query(copy: query)
        let operation = NSBlockOperation() {
            self._browseMirror(queryCopy) {
                (content, error) -> Void in
                callingQueue.addOperationWithBlock() {
                    completionHandler(content: content, error: error)
                }
            }

            error = NSError(domain: Client.ErrorDomain, code: Int(searchResults.statusCode), userInfo: nil)
        }
        assert(content != nil || error != nil)
        return (content: content, error: error)
    }
}
