diff --git a/src/output/plugins/wasapi/WasapiOutputPlugin.cxx b/src/output/plugins/wasapi/WasapiOutputPlugin.cxx
index a1c3d69ee..db61fff3f 100644
--- a/src/output/plugins/wasapi/WasapiOutputPlugin.cxx
+++ b/src/output/plugins/wasapi/WasapiOutputPlugin.cxx
@@ -633,8 +633,13 @@ WasapiOutput::Play(const void *chunk, size_t size)
 	do {
 		const size_t consumed_size = thread->spsc_buffer.push(
 			static_cast<const BYTE *>(input.data), input.size);
+
+		if (!is_started) {
+			is_started = true;
+			thread->Play();
+		}
+
 		if (consumed_size == 0) {
-			assert(is_started);
 			thread->Wait();
 			thread->CheckException();
 			if (!not_interrupted.test_and_set()) {
@@ -643,11 +648,6 @@ WasapiOutput::Play(const void *chunk, size_t size)
 			continue;
 		}
 
-		if (!is_started) {
-			is_started = true;
-			thread->Play();
-		}
-
 		thread->CheckException();
 
 		if (pcm_export) {