diff --git a/NEWS b/NEWS
index 7723350ff..04fa38936 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,7 @@
 ver 0.15.9 (2009/??/??)
 * decoders:
   - mad: fix crash when seeking at end of song
+  - mpcdec: fix negative shift on fixed-point samples
 * playlist: fix single+repeat in random mode
 
 
diff --git a/src/decoder/mpcdec_plugin.c b/src/decoder/mpcdec_plugin.c
index 26349f93a..b3582c689 100644
--- a/src/decoder/mpcdec_plugin.c
+++ b/src/decoder/mpcdec_plugin.c
@@ -103,7 +103,7 @@ mpc_to_mpd_sample(MPC_SAMPLE_FORMAT sample)
 	const int shift = bits - MPC_FIXED_POINT_SCALE_SHIFT;
 
 	if (shift < 0)
-		val = sample << -shift;
+		val = sample >> -shift;
 	else
 		val = sample << shift;
 #else