     }
 
     func webView(webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: NSError) {
-        if locationMatchesURLForError(error) {
+        if navigation === self.navigation {
             fail { self.delegate?.visit(self, requestDidFailWithError: error) }
         }
     }
 
     func webView(webView: WKWebView, didFailNavigation navigation: WKNavigation!, withError error: NSError) {
-        if locationMatchesURLForError(error) {
+        if navigation === self.navigation {
             fail { self.delegate?.visit(self, requestDidFailWithError: error) }
         }
-    }
-
-    private func locationMatchesURLForError(error: NSError) -> Bool {
-        let key: NSObject = NSString(string: NSURLErrorFailingURLErrorKey)
-        let failingURL = error.userInfo?[key] as? NSURL
-        return failingURL == location
     }
 }
 

}

class TLColdBootVisit: TLVisit, WKNavigationDelegate {
    override private func startVisit() {
        webView.navigationDelegate = self
        webView.loadRequest(NSURLRequest(URL: location))
        delegate?.visitDidStart(self)
        startRequest()
    }

    // MARK: WKNavigationDelegate

    func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
        if navigation === self.navigation {
            webView.navigationDelegate = nil
            delegate?.visitDidInitializeWebView(self)
            finishRequest()
            complete()
        }
    }

    func webView(webView: WKWebView, decidePolicyForNavigationResponse navigationResponse: WKNavigationResponse, decisionHandler: (WKNavigationResponsePolicy) -> Void) {
