         }
         let webView = webView ?? ownWebView
         
-        func completionHandlerWrapper(_ content: String?, _ rawWebView: WKWebView, _ error: Error?) {
+        func completionHandlerWrapper(_ content: String?, _ rawWebView: WKWebView, _ error: Error?, previousNavigationDelegate: WKNavigationDelegate?) {
             // See: https://stackoverflow.com/a/32443423/89373
             if ownWebView == rawWebView {
                 rawWebView.stopLoading()
                 rawWebView.configuration.userContentController.removeScriptMessageHandler(forName: "readabilityJavascriptLoaded")
-                rawWebView.navigationDelegate = nil
+                rawWebView.navigationDelegate = previousNavigationDelegate
             }
             completionHandler(content, rawWebView, error)
         }

            
            self?.isRenderingReadabilityHTML = false
            guard let html = html else {
                self?.completionHandler(nil, webView, error)
                return
            }
            self?.completionHandler(html, webView, nil)
        }
    }
    

public class Readability: NSObject, WKNavigationDelegate, WKScriptMessageHandler {
    private weak var webView: WKWebView?
    private let ownWebView: WKWebView?
    private weak var previousNavigationDelegate: WKNavigationDelegate?
    private let completionHandler: ((_ content: String?, _ rawWebView: WKWebView, _ error: Error?, _ navigationDelegate: WKNavigationDelegate?) -> Void)
    private let readabilityUserScript = ReadabilityUserScript(scriptInjectionTime: .atDocumentEnd)
    private var isRenderingReadabilityHTML = false
    private let conversionTime: ReadabilityConversionTime
