Index: uspace/lib/drv/generic/remote_audio_pcm.c
===================================================================
--- uspace/lib/drv/generic/remote_audio_pcm.c	(revision ac8b0966d9cb53b8afc2aaec1a1b5cd4863f32f0)
+++ uspace/lib/drv/generic/remote_audio_pcm.c	(revision fda3bd93a193c7fdbc8bf32cbdec8d2a16d5d12f)
@@ -469,4 +469,21 @@
  * @return Error code.
  */
+int audio_pcm_stop_playback_immediate(audio_pcm_sess_t *sess)
+{
+	async_exch_t *exch = async_exchange_begin(sess);
+	const int ret = async_req_2_0(exch,
+	    DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE),
+	    IPC_M_AUDIO_PCM_STOP_PLAYBACK, true);
+	async_exchange_end(exch);
+	return ret;
+}
+
+/**
+ * Stops playback at the end of the current fragment.
+ *
+ * @param sess Audio device session.
+ *
+ * @return Error code.
+ */
 int audio_pcm_stop_playback(audio_pcm_sess_t *sess)
 {
@@ -474,5 +491,5 @@
 	const int ret = async_req_2_0(exch,
 	    DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE),
-	    IPC_M_AUDIO_PCM_STOP_PLAYBACK, true);
+	    IPC_M_AUDIO_PCM_STOP_PLAYBACK, false);
 	async_exchange_end(exch);
 	return ret;
@@ -550,4 +567,21 @@
  * @return Error code.
  */
+int audio_pcm_stop_capture_immediate(audio_pcm_sess_t *sess)
+{
+	async_exch_t *exch = async_exchange_begin(sess);
+	const int ret = async_req_2_0(exch,
+	    DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE),
+	    IPC_M_AUDIO_PCM_STOP_CAPTURE, true);
+	async_exchange_end(exch);
+	return ret;
+}
+
+/**
+ * Stops capture at the end of the current fragment.
+ *
+ * @param sess Audio device session.
+ *
+ * @return Error code.
+ */
 int audio_pcm_stop_capture(audio_pcm_sess_t *sess)
 {
@@ -555,5 +589,5 @@
 	const int ret = async_req_2_0(exch,
 	    DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE),
-	    IPC_M_AUDIO_PCM_STOP_CAPTURE, true);
+	    IPC_M_AUDIO_PCM_STOP_CAPTURE, false);
 	async_exchange_end(exch);
 	return ret;
Index: uspace/lib/drv/include/audio_pcm_iface.h
===================================================================
--- uspace/lib/drv/include/audio_pcm_iface.h	(revision ac8b0966d9cb53b8afc2aaec1a1b5cd4863f32f0)
+++ uspace/lib/drv/include/audio_pcm_iface.h	(revision fda3bd93a193c7fdbc8bf32cbdec8d2a16d5d12f)
@@ -98,4 +98,5 @@
 int audio_pcm_start_playback(audio_pcm_sess_t *,
     unsigned, unsigned, pcm_sample_format_t);
+int audio_pcm_stop_playback_immediate(audio_pcm_sess_t *);
 int audio_pcm_stop_playback(audio_pcm_sess_t *);
 
@@ -106,4 +107,5 @@
 int audio_pcm_start_capture(audio_pcm_sess_t *,
     unsigned, unsigned, pcm_sample_format_t);
+int audio_pcm_stop_capture_immediate(audio_pcm_sess_t *);
 int audio_pcm_stop_capture(audio_pcm_sess_t *);
 
