diff --git a/libswscale/Makefile b/libswscale/Makefile
index 95f90b7575b6ab0a97588181a127893428f6ea2b..35a132c218889b17dd18e305567d2b8a0882a5e0 100644
--- a/libswscale/Makefile
+++ b/libswscale/Makefile
@@ -12,7 +12,9 @@ OBJS= swscale.o rgb2rgb.o
 OBJS-$(HAVE_ALTIVEC)       +=  yuv2rgb_altivec.o
 OBJS-$(CONFIG_GPL)         +=  yuv2rgb.o
 
-OBJS-$(ARCH_BFIN)          +=  yuv2rgb_bfin.o
+OBJS-$(ARCH_BFIN)          +=  yuv2rgb_bfin.o \
+                               swscale_bfin.o \
+
 ASM_OBJS-$(ARCH_BFIN)      += internal_bfin.o
 
 HEADERS = swscale.h rgb2rgb.h
diff --git a/libswscale/swscale.c b/libswscale/swscale.c
index b53d2e52e4f7d92781dc590e373ca85be9f934d7..1cda63b0bb42d2448bc28bddfa71318e6a730d18 100644
--- a/libswscale/swscale.c
+++ b/libswscale/swscale.c
@@ -2219,6 +2219,11 @@ SwsContext *sws_getContext(int srcW, int srcH, int srcFormat, int dstW, int dstH
             c->swScale= gray16swap;
         }
 
+#ifdef ARCH_BFIN
+        if (flags & SWS_CPU_CAPS_BFIN)
+            ff_bfin_get_unscaled_swscale (c);
+#endif
+
         if (c->swScale){
             if (flags&SWS_PRINT_INFO)
                 av_log(c, AV_LOG_INFO, "SwScaler: using unscaled %s -> %s special converter\n",