         peekState = .waitingForPeekAndPopData
         
         // Invoke callback to force some router to perform transition
-        let registeredPreviewingData = registeredPreviewingDataFor(previewingContext: previewingContext)
-        registeredPreviewingData?.onPeek(previewingContext, location)
+        let onscreenRegisteredPreviewingData = onscreenRegisteredPreviewingDataFor(previewingContext: previewingContext)
+        onscreenRegisteredPreviewingData?.onPeek(previewingContext, location)
         
         // Check if router requested a transition
         let didTransitionToInProgressState = peekState.transitionToInProgressState()

    
    // MARK: - Private
    @available(iOS 9.0, *)
    private func registeredPreviewingDataFor(previewingContext: UIViewControllerPreviewing)
        -> RegisteredPreviewingData?
    {
        registeredPreviewingDataList = registeredPreviewingDataList.filter { !$0.isZombie }
        
        return registeredPreviewingDataList.first { $0.previewingContext === previewingContext }
    }
    
    @available(iOS 9.0, *)

    var isZombie: Bool {
        return viewController == nil || previewingContext == nil || previewingContext?.sourceView == nil
    }
    
    @available(iOS 9.0, *)
    var isOnscreen: Bool {
        return previewingContext?.sourceView.window != nil && viewController?.view.window != nil
    }
}
