anchor.diff:                 :message "Seek error. Desired sample number is bigger than
                            number of samples in stream")))
   
  +  ;; Reset the reader
  +  (reader-position bitreader 0)
  +  (restore-sync bitreader)
     ;; Init the boundaries where desired sample must be
  -  (let ((start-pos audio-start)
  +  (let ((start-pos (reader-position bitreader))
   	(end-pos (reader-length bitreader)))
   
       ;; Now, if seektable is present, correct the boundaries
  
positive.code:   frame))
  
  ;; Rather slow (and buggy) absolute sample seek
  (defun seek-sample (bitreader sample audio-start blocksize &key seektable streaminfo)
    "Seeks to an interchannel sample.
     Sets input to new frame, which contains this sample.
     Returns position of this sample in the frame.
     AUDIO-START is a position in stream of the first audio sample.
     BLOCKSIZE is a frame size in samples. This implementation supports
     only fixed block size.
     SEEKTABLE and STREAMINFO are optional. Providing STREAMINFO enables
     additional sanity checks"
    (declare (type reader bitreader)
  	   (type (or null streaminfo) streaminfo)
  	   #+sbcl (sb-ext:muffle-conditions sb-ext:compiler-note)) ; Since we have bignum arithmetic here
  
    (with-accessors ((totalsamples streaminfo-totalsamples)) streaminfo
      (if (and streaminfo
  
negative.code: 	       :message "Cannot seek with variable blocksize"))
  
      (multiple-value-bind (needed-num remainder)
  	(floor sample (if streaminfo
                            (streaminfo-minblocksize streaminfo)
                            (frame-block-size (read-frame bitreader))))
        (declare (type non-negative-fixnum needed-num remainder))
  
        (labels ((dichotomy-search (start end)
  