         }
 
         tableView.infiniteScrollIndicatorView = delegate?.loadingMoreIndicator(forPaginationWrapper: self).view
+    }
+
+    private func removeInfiniteScroll() {
+        tableView.finishInfiniteScroll()
+        tableView.removeInfiniteScroll()
     }
 
     private func createRefreshControl() {

    private func bindViewModelStates() {
        typealias State = PaginationViewModel<Cursor>.State

        paginationViewModel.state.flatMapLatest { [applicationCurrentyActive] state -> Driver<State> in
            if applicationCurrentyActive.value {
                return .just(state)
            } else {

    // MARK: private stuff

    private func onExhaustedState() {
        removeInfiniteScroll()
    }

    private func addInfiniteScroll() {
