diff --git a/src/player/Thread.cxx b/src/player/Thread.cxx
index 01cca7b8f..91f2810ea 100644
--- a/src/player/Thread.cxx
+++ b/src/player/Thread.cxx
@@ -785,7 +785,7 @@ Player::ProcessCommand(std::unique_lock<Mutex> &lock) noexcept
 		queued = true;
 		pc.CommandFinished();
 
-		if (dc.IsIdle())
+		if (!decoder_starting && dc.IsIdle())
 			StartDecoder(lock, std::make_shared<MusicPipe>(),
 				     false);