diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 461cb41844d0588c57ddf0dfe946de9705403f15..3df0d458a30ba0719ebf0ba5df75bb9f6f3caac3 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -445,8 +445,10 @@ MMX-OBJS-$(CONFIG_CAVS_DECODER)        += x86/cavsdsp_mmx.o
 MMX-OBJS-$(CONFIG_ENCODERS)            += x86/dsputilenc_mmx.o
 MMX-OBJS-$(CONFIG_FLAC_ENCODER)        += x86/flacdsp_mmx.o
 MMX-OBJS-$(CONFIG_GPL)                 += x86/idct_mmx.o
+MMX-OBJS-$(CONFIG_MLP_DECODER)         += x86/mlpdsp.o
 MMX-OBJS-$(CONFIG_SNOW_DECODER)        += x86/snowdsp_mmx.o
 MMX-OBJS-$(CONFIG_THEORA_DECODER)      += x86/vp3dsp_mmx.o x86/vp3dsp_sse2.o
+MMX-OBJS-$(CONFIG_TRUEHD_DECODER)      += x86/mlpdsp.o
 MMX-OBJS-$(CONFIG_VC1_DECODER)         += x86/vc1dsp_mmx.o
 MMX-OBJS-$(CONFIG_VP3_DECODER)         += x86/vp3dsp_mmx.o x86/vp3dsp_sse2.o
 MMX-OBJS-$(CONFIG_VP5_DECODER)         += x86/vp3dsp_mmx.o x86/vp3dsp_sse2.o
diff --git a/libavcodec/mlpdsp.c b/libavcodec/mlpdsp.c
index 6519b16eab9a866320fd7531ea919609560121d2..79059d925ac98a020870fb579c122dc680fbd104 100644
--- a/libavcodec/mlpdsp.c
+++ b/libavcodec/mlpdsp.c
@@ -55,7 +55,11 @@ static void ff_mlp_filter_channel(int32_t *state, const int32_t *coeff,
     }
 }
 
+void ff_mlp_init_x86(DSPContext* c, AVCodecContext *avctx);
+
 void ff_mlp_init(DSPContext* c, AVCodecContext *avctx)
 {
     c->mlp_filter_channel = ff_mlp_filter_channel;
+    if (ARCH_X86)
+        ff_mlp_init_x86(c, avctx);
 }