diff --git a/libavcodec/i386/cputest.c b/libavcodec/i386/cputest.c
index b50d653c4d5d903b13d008a36d24b8d3edccc0c8..e4b1b5155842a4a20e9f9f1f077e80df80952de6 100644
--- a/libavcodec/i386/cputest.c
+++ b/libavcodec/i386/cputest.c
@@ -114,6 +114,17 @@ int mm_support(void)
         if (eax & 0x01000000)
             rval |= MM_MMXEXT;
         return rval;
+    } else if (ebx == 0x756e6547 &&
+               edx == 0x54656e69 &&
+               ecx == 0x3638784d) {
+        /* Tranmeta Crusoe */
+        cpuid(0x80000000, eax, ebx, ecx, edx);
+        if ((unsigned)eax < 0x80000001)
+            return 0;
+        cpuid(0x80000001, eax, ebx, ecx, edx);
+        if ((edx & 0x00800000) == 0)
+            return 0;
+        return MM_MMX;
     } else {
         return 0;
     }