diff --git a/NEWS b/NEWS
index d0f9a6266..0def4e530 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,5 @@
 ver 0.19.16 (not yet released)
+* faster seeking
 * fix system include path order
 * add missing DocBook file to tarball
 
diff --git a/src/PlayerThread.cxx b/src/PlayerThread.cxx
index eeebcdb96..30e509b3b 100644
--- a/src/PlayerThread.cxx
+++ b/src/PlayerThread.cxx
@@ -518,6 +518,8 @@ Player::SeekDecoder()
 {
 	assert(pc.next_song != nullptr);
 
+	pc.outputs.Cancel();
+
 	const SongTime start_time = pc.next_song->GetStartTime();
 
 	if (!dc.LockIsCurrentSong(*pc.next_song)) {
@@ -583,8 +585,6 @@ Player::SeekDecoder()
 	/* re-fill the buffer after seeking */
 	buffering = true;
 
-	pc.outputs.Cancel();
-
 	return true;
 }