--- libao-1.0.0.org/src/plugins/pulse/ao_pulse.c 2010-08-28 21:58:41.342849694 +0530 +++ libao-1.0.0/src/plugins/pulse/ao_pulse.c 2010-08-28 21:59:38.720849639 +0530 @@ -227,7 +227,7 @@ } - if (!(internal->simple = pa_simple_new(internal->server, fn ? t : "libao", PA_STREAM_PLAYBACK, internal->sink, fn ? t2 : "libao playback stream", &ss, &map, NULL, NULL))) + if (!(internal->simple = pa_simple_new(internal->server, fn ? t : "libao", PA_STREAM_PLAYBACK, internal->sink, fn ? t2 : "libao playback stream", &ss, device->input_map ? &map : NULL, NULL, NULL))) return 0; device->driver_byte_format = AO_FMT_NATIVE; @@ -247,9 +247,11 @@ assert(device && device->internal); ao_pulse_internal *internal = (ao_pulse_internal *) device->internal; - pa_simple_drain(internal->simple, NULL); - pa_simple_free(internal->simple); - internal->simple = NULL; + if (internal->simple) { + pa_simple_drain(internal->simple, NULL); + pa_simple_free(internal->simple); + internal->simple = NULL; + } return 1; }