diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index 7b97e15f33f575c92fc04aef8578dee81c11247c..772775cdad8532177055f2417c2f49d5f7fc84b8 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -597,7 +597,7 @@ int MPV_common_init(MpegEncContext *s)
 {
     int y_size, c_size, yc_size, i, mb_array_size, mv_table_size, x, y;
 
-    if(s->avctx->thread_count > MAX_THREADS || 16*s->avctx->thread_count > s->height){
+    if(s->avctx->thread_count > MAX_THREADS || (16*s->avctx->thread_count > s->height && s->height)){
         av_log(s->avctx, AV_LOG_ERROR, "too many threads\n");
         return -1;
     }