anchor.diff:  	       (<= type-num 63))
   	      (list 'subframe-lpc :order (1+ (- type-num 32)))) ; 100000-111111
   	     (t (error "Error subframe type"))))
  -	   (wasted-bits (funcall bit-reader 1)))
  +	   (wasted-bits (tbs:read-bit stream)))
   
         ;; FIXME: read wasted bits correctly
         (if (= wasted-bits 1) (error "Do not know what to do with wasted bits"))
         (let ((subframe (apply #'make-instance
   			     (append type-args (list :wasted-bps wasted-bits)))))
  -	(subframe-body-reader bit-reader subframe frame)
  +	(subframe-body-reader stream subframe frame)
   	subframe)))
   
   (defun frame-reader (stream streaminfo)
  
positive.code:   (with-slots (sample-size) frame
  	      (setf (subframe-constant-value subframe) ;; FIXME: value is signed in original libFLAC
  		    (unsigned-to-signed
  		     (funcall bit-reader sample-size)
  		     sample-size))))
  
  (defmethod subframe-body-reader (bit-reader (subframe subframe-verbatim) frame)
  
negative.code: 		       (t sample-rate))))
      (setf (frame-crc-8 frame) (tbs:read-octet stream))
  
      (setf (frame-subframes frame)
  	  ;; FIXME: maybe we should use channel-assignment?
  	  (loop for sf below (1+ (streaminfo-channels-1 streaminfo)) collect
  		(subframe-reader stream frame)))
  
      ;; Check zero padding
      (if (/= (tbs:read-to-byte-alignment stream) 0) (error "Padding to byte-alignment is not zero"))
      (setf (frame-crc-16 frame) (tbs:read-bits 16 stream))
    frame))
  