     // MARK: Visiting
 
     public var currentVisitable: TLVisitable?
-    private var currentVisit: TLVisit?
     private var lastIssuedVisit: TLVisit?
+    private var topmostVisit: TLVisit?
 
     public func visit(visitable: TLVisitable) {
         visitVisitable(visitable, action: .Advance)


    func activateVisitable(visitable: TLVisitable) {
        currentVisitable = visitable
        if lastIssuedVisit?.visitable === visitable {
            currentVisit = lastIssuedVisit
        }

        activateWebViewForVisitable(visitable)
    }


    // MARK: TLVisitableDelegate

    public func visitableViewWillAppear(visitable: TLVisitable) {
        if let topmostVisit = self.topmostVisit, lastIssuedVisit = self.lastIssuedVisit {
            let topmostVisitable = topmostVisit.visitable
            if visitable === topmostVisitable && visitable.viewController.isMovingToParentViewController() {
                // Back swipe gesture canceled
                if topmostVisit.state == .Completed {
                    // Top visitable was fully loaded before the gesture began
                    lastIssuedVisit.cancel()
                } else {
