diff --git a/sflphone-common/src/audio/pulseaudio/pulselayer.cpp b/sflphone-common/src/audio/pulseaudio/pulselayer.cpp
index 7a1664ec90a38cb9d78c41d2e96ee9a22a2ef787..3f754c8df169c1bbb9fe49e3b79bab666e71c4fc 100644
--- a/sflphone-common/src/audio/pulseaudio/pulselayer.cpp
+++ b/sflphone-common/src/audio/pulseaudio/pulselayer.cpp
@@ -357,12 +357,17 @@ PulseLayer::stopStream (void)
 {
 
 	_info("Audio: Stop audio stream");
+
+	pa_threaded_mainloop_lock (m);
+
 	if(playback)
 	    pa_stream_flush (playback->pulseStream(), NULL, NULL);
 
 	if(record)
 	    pa_stream_flush (record->pulseStream(), NULL, NULL);
 
+	pa_threaded_mainloop_unlock (m);
+
 	disconnectAudioStream();
 }