diff --git a/libavcodec/motion_est.c b/libavcodec/motion_est.c
index 71fe90f4208a8586b93d585a7648b019477367ea..5187ef7bb3c656bac662ad8f8bc94efb76d3433f 100644
--- a/libavcodec/motion_est.c
+++ b/libavcodec/motion_est.c
@@ -240,6 +240,10 @@ int ff_init_me(MpegEncContext *s){
         av_log(s->avctx, AV_LOG_ERROR, "ME_MAP size is too small for SAB diamond\n");
         return -1;
     }
+    if(s->me_method!=ME_ZERO && s->me_method!=ME_EPZS && s->me_method!=ME_X1){
+        av_log(s->avctx, AV_LOG_ERROR, "me_method is only allowed to be set to zero and epzs; for hex,umh,full and others see dia_size\n");
+        return -1;
+    }
 
     c->avctx= s->avctx;