diff --git a/libavcodec/mpegvideo_xvmc.c b/libavcodec/mpegvideo_xvmc.c
index e1d0e7e0560f6c5f1bcd48abd618a4f67bcfea23..0a9496442a3ae6a8a329da5d3292a44ffa827c74 100644
--- a/libavcodec/mpegvideo_xvmc.c
+++ b/libavcodec/mpegvideo_xvmc.c
@@ -266,7 +266,7 @@ void ff_xvmc_decode_mb(MpegEncContext *s)
     for (i = 0; i < blocks_per_mb; i++) {
         if (s->block_last_index[i] >= 0) {
             // I do not have unsigned_intra MOCO to test, hope it is OK.
-            if (s->mb_intra && (render->idct || !render->idct && !render->unsigned_intra))
+            if (s->mb_intra && (render->idct || (!render->idct && !render->unsigned_intra)))
                 s->pblocks[i][0] -= 1 << 10;
             if (!render->idct) {
                 s->dsp.idct(s->pblocks[i]);