             return
           }
 
+          let possibleNewRowStart = self.doScroll(values)
+          rowStart = min(possibleNewRowStart, rowStart)
           recompute = true
-          rowStart = min(self.doScroll(values), rowStart)
 
         @unknown default:
           self.log.error("Unknown flush data type")

        switch type {

        case .rawLine:
          let (r, s) = self.doRawLine(data: innerArray)
          recompute = recompute ? true : r
          rowStart = r ? min(rowStart, s) : rowStart

        case .goto:
          guard let row = innerArray[0].uint64Value,

      })
  }

  private func doRawLine(data: [MessagePackValue]) -> Int {
    guard data.count == 7 else {
      self.bridgeLogger.error("Could not convert; wrong count: \(data)")
      return Int.max
    }

    guard let row = data[0].intValue,
