Index: ffmpeg/libavcodec/i386/dsputil_h264_template_mmx.c
===================================================================
--- ffmpeg/libavcodec/i386/dsputil_h264_template_mmx.c	(revision 14508)
+++ ffmpeg/libavcodec/i386/dsputil_h264_template_mmx.c	(working copy)
@@ -185,8 +185,12 @@
     }
 }
 
+extern void H264_CHROMA_MC4_C(uint8_t *dst/*align 4*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y);
+
 static void H264_CHROMA_MC4_TMPL(uint8_t *dst/*align 4*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y)
 {
+	if (!(x*y)) {H264_CHROMA_MC4_C(dst, src, stride, h, x, y); return;}
+
     asm volatile(
         "pxor   %%mm7, %%mm7        \n\t"
         "movd %5, %%mm2             \n\t"
Index: ffmpeg/libavcodec/i386/dsputil_mmx.c
===================================================================
--- ffmpeg/libavcodec/i386/dsputil_mmx.c	(revision 14508)
+++ ffmpeg/libavcodec/i386/dsputil_mmx.c	(working copy)
@@ -2626,6 +2626,8 @@
             H264_QPEL_FUNCS(3, 2, sse2);
             H264_QPEL_FUNCS(3, 3, sse2);
         }
+#undef  H264_QPEL_FUNCS
+#define H264_QPEL_FUNCS(x, y, CPU) 
 #ifdef HAVE_SSSE3
         if(mm_flags & MM_SSSE3){
             H264_QPEL_FUNCS(1, 0, ssse3);
Index: ffmpeg/libavcodec/i386/h264dsp_mmx.c
===================================================================
--- ffmpeg/libavcodec/i386/h264dsp_mmx.c	(revision 14508)
+++ ffmpeg/libavcodec/i386/h264dsp_mmx.c	(working copy)
@@ -1922,6 +1922,7 @@
 #define H264_CHROMA_OP4(S,D,T)
 #define H264_CHROMA_MC8_TMPL put_h264_chroma_mc8_mmx
 #define H264_CHROMA_MC4_TMPL put_h264_chroma_mc4_mmx
+#define H264_CHROMA_MC4_C put_h264_chroma_mc4_c
 #define H264_CHROMA_MC2_TMPL put_h264_chroma_mc2_mmx2
 #define H264_CHROMA_MC8_MV0 put_pixels8_mmx
 #include "dsputil_h264_template_mmx.c"
@@ -1939,6 +1940,7 @@
 #undef H264_CHROMA_OP4
 #undef H264_CHROMA_MC8_TMPL
 #undef H264_CHROMA_MC4_TMPL
+#undef H264_CHROMA_MC4_C
 #undef H264_CHROMA_MC2_TMPL
 #undef H264_CHROMA_MC8_MV0
 
@@ -1947,6 +1949,7 @@
                                "pavgb " #T ", " #D " \n\t"
 #define H264_CHROMA_MC8_TMPL avg_h264_chroma_mc8_mmx2
 #define H264_CHROMA_MC4_TMPL avg_h264_chroma_mc4_mmx2
+#define H264_CHROMA_MC4_C avg_h264_chroma_mc4_c
 #define H264_CHROMA_MC2_TMPL avg_h264_chroma_mc2_mmx2
 #define H264_CHROMA_MC8_MV0 avg_pixels8_mmx2
 #include "dsputil_h264_template_mmx.c"
Index: ffmpeg/libavcodec/dsputil.c
===================================================================
--- ffmpeg/libavcodec/dsputil.c	(revision 14508)
+++ ffmpeg/libavcodec/dsputil.c	(working copy)
@@ -1592,7 +1592,7 @@
     }\
 }\
 \
-static void OPNAME ## h264_chroma_mc4_c(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y){\
+void OPNAME ## h264_chroma_mc4_c(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y){\
     const int A=(8-x)*(8-y);\
     const int B=(  x)*(8-y);\
     const int C=(8-x)*(  y);\
