diff --git a/libswscale/swscale.c b/libswscale/swscale.c
index 81cc945f1a018836652c99d3ea33109aa0b1ce09..6285f4f117df57f386fcb60c6dbafae0a990144d 100644
--- a/libswscale/swscale.c
+++ b/libswscale/swscale.c
@@ -2172,7 +2172,7 @@ SwsContext *sws_getContext(int srcW, int srcH, int srcFormat, int dstW, int dstH
         }
 #endif
 
-        if (srcFormat==PIX_FMT_YUV410P && dstFormat==PIX_FMT_YUV420P)
+        if (srcFormat==PIX_FMT_YUV410P && dstFormat==PIX_FMT_YUV420P && !(flags & SWS_BITEXACT))
         {
             c->swScale= yvu9toyv12Wrapper;
         }