--- a/src/PlayerThread.cxx	2014-03-24 10:21:16.000000000 +0100
+++ b/src/PlayerThread.cxx	2014-03-24 10:20:57.000000000 +0100
@@ -67,12 +67,6 @@
 	bool decoder_starting;
 
 	/**
-	 * Did we wake up the DecoderThread recently?  This avoids
-	 * duplicate wakeup calls.
-	 */
-	bool decoder_woken;
-
-	/**
 	 * is the player paused?
 	 */
 	bool paused;
@@ -137,7 +131,6 @@
 		:pc(_pc), dc(_dc), buffer(_buffer),
 		 buffering(true),
 		 decoder_starting(false),
-		 decoder_woken(false),
 		 paused(false),
 		 queued(true),
 		 output_open(false),
@@ -862,13 +855,8 @@
 	pc.Lock();
 	if (!dc.IsIdle() &&
 	    dc.pipe->GetSize() <= (pc.buffered_before_play +
-				   buffer.GetSize() * 3) / 4) {
-		if (!decoder_woken) {
-			decoder_woken = true;
-			dc.Signal();
-		}
-	} else
-		decoder_woken = false;
+				   buffer.GetSize() * 3) / 4)
+		dc.Signal();
 	pc.Unlock();
 
 	return true;
