                     self.delegate.didStartPlaying(self)
                     MyLog("SWElem videoPlayer.state = \(videoPlayer.status.rawValue)", level: 1)
                     if self.fNeedRewind {
-                        videoPlayer.seek(to: CMTime(seconds:Double(self.videoStart), preferredTimescale: 600), toleranceBefore: kCMTimeZero, toleranceAfter: kCMTimeZero)
+                        let timescale = videoPlayer.currentItem?.asset.duration.timescale ?? 600
+                        videoPlayer.seek(to: CMTime(seconds:Double(self.videoStart), preferredTimescale: timescale), toleranceBefore: self.tolerance, toleranceAfter: self.tolerance)
                     }
                     videoPlayer.play()
                     self.fNeedRewind = false

    private var videoStart = CGFloat(0.0)
    private var videoDuration:CGFloat?
    private var hasObserver = false

    // Sprite Element Specific
    private var spriteLayer:CALayer?

            }
            let timeSec = videoStart + offset * (videoDuration ?? 1.0)
            let time = CMTimeMakeWithSeconds(Float64(timeSec), 600)
            if player.status == AVPlayerStatus.readyToPlay {
                self.fSeeking = true
                SwipeElement.objectCount -= 1 // to avoid false memory leak detection
