I've been playing with DMX_SET_BUFFER_SIZE and I've had a problem when I tried to resize the buffer to a smaller size. dvb_dmxdev_set_buffer_size flushes the ringbuffer and then replaces it with a new one. What happens if the current pointer is on a position that would be invalid in the new buffer? An access violation. This because dvb_ringbuffer_flush resets the 2 pointers to the vaule of pwrite (which could be after the end of the new buffer). I think it is safer to reset them to 0. Andrea