diff --git a/libavcodec/lcldec.c b/libavcodec/lcldec.c
index b3b7b523f67a1478b7f4128419aed86e540865aa..66db7c7f1cd628f942c741620ebb68f12e64b208 100644
--- a/libavcodec/lcldec.c
+++ b/libavcodec/lcldec.c
@@ -198,7 +198,9 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPac
     case AV_CODEC_ID_MSZH:
         switch (c->compression) {
         case COMP_MSZH:
-            if (c->flags & FLAG_MULTITHREAD) {
+            if (c->imgtype == IMGTYPE_RGB24 && len == width * height * 3) {
+                ;
+            } else if (c->flags & FLAG_MULTITHREAD) {
                 mthread_inlen = AV_RL32(encoded);
                 mthread_inlen = FFMIN(mthread_inlen, len - 8);
                 mthread_outlen = AV_RL32(encoded+4);