diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c
index 772204cde68ad2f1a8a6dd4ee3090cc43bfb3920..cf848ce05e2e1ff0039e1be6a8c482e7a52d68ca 100644
--- a/libavformat/img2dec.c
+++ b/libavformat/img2dec.c
@@ -725,9 +725,15 @@ static int qdraw_probe(AVProbeData *p)
 {
     const uint8_t *b = p->buf;
 
-    if (!b[10] && AV_RB32(b+11) == 0x1102ff0c && !b[15] ||
-        p->buf_size >= 528 && !b[522] && AV_RB32(b+523) == 0x1102ff0c && !b[527])
-        return AVPROBE_SCORE_EXTENSION + 1;
+    if (   p->buf_size >= 528
+        && (AV_RB64(b + 520) & 0xFFFFFFFFFFFF) == 0x001102ff0c00
+        && AV_RB16(b + 520)
+        && AV_RB16(b + 518))
+        return AVPROBE_SCORE_MAX * 3 / 4;
+    if (   (AV_RB64(b + 8) & 0xFFFFFFFFFFFF) == 0x001102ff0c00
+        && AV_RB16(b + 8)
+        && AV_RB16(b + 6))
+        return AVPROBE_SCORE_EXTENSION / 4;
     return 0;
 }