--- pcm_usb_stream.c 2008-11-21 18:08:16.000000000 -0500 +++ pcm_usb_stream.c 2009-12-30 12:36:00.654452577 -0500 @@ -258,7 +258,7 @@ snd_pcm_us_t *us = io->private_data; VDBG("%u", us->uus->s->periods_done); - if (io->stream == SND_PCM_STREAM_PLAYBACK) + if (io->stream == SND_PCM_STREAM_PLAYBACK && us->uus->s) memset(us->uus->write_area, 0, us->uus->s->write_size); return 0;