diff --git a/NEWS b/NEWS
index de0802376..76523c37c 100644
--- a/NEWS
+++ b/NEWS
@@ -7,6 +7,8 @@ ver 0.21.6 (not yet released)
   - cdio_paranoia: fix build failure due to missing #include
 * decoder
   - opus: fix replay gain when there are no other tags
+* output
+  - pulse: work around error with unusual channel count
 * playlist
   - flac: fix use-after-free bug
 * support abstract sockets on Linux
diff --git a/src/output/plugins/PulseOutputPlugin.cxx b/src/output/plugins/PulseOutputPlugin.cxx
index 59fe9fb54..fa1b06da9 100644
--- a/src/output/plugins/PulseOutputPlugin.cxx
+++ b/src/output/plugins/PulseOutputPlugin.cxx
@@ -581,8 +581,8 @@ PulseOutput::SetupStream(const pa_sample_spec &ss)
 
 	/* WAVE-EX is been adopted as the speaker map for most media files */
 	pa_channel_map chan_map;
-	pa_channel_map_init_auto(&chan_map, ss.channels,
-				 PA_CHANNEL_MAP_WAVEEX);
+	pa_channel_map_init_extend(&chan_map, ss.channels,
+				   PA_CHANNEL_MAP_WAVEEX);
 	stream = pa_stream_new(context, name, &ss, &chan_map);
 	if (stream == nullptr)
 		throw MakePulseError(context,