diff --git a/libavcodec/mpegvideo_xvmc.c b/libavcodec/mpegvideo_xvmc.c
index c96357b164c2732c7afe791bd847a69e1a99098d..2b936612994ebcec9d62e4dc3f205ce3e0d2fb99 100644
--- a/libavcodec/mpegvideo_xvmc.c
+++ b/libavcodec/mpegvideo_xvmc.c
@@ -80,7 +80,7 @@ int ff_xvmc_field_start(MpegEncContext*s, AVCodecContext *avctx)
         av_log(avctx, AV_LOG_ERROR,
                "Rendering surface contains %i unprocessed blocks\n",
                render->filled_mv_blocks_num);
-        assert(0);
+        return -1;
     }
 
     render->p_future_surface = NULL;