diff --git a/libswscale/swscale.c b/libswscale/swscale.c
index 60f11d6eb6a1e1163b6ab7951fbd948c4610952b..fd6aeb2a7196aa8dc4ab20e45df7629c413f20b6 100644
--- a/libswscale/swscale.c
+++ b/libswscale/swscale.c
@@ -2014,6 +2014,23 @@ SwsContext *sws_getContext(int srcW, int srcH, int srcFormat, int dstW, int dstH
         return NULL;
     }
 
+    i= flags & ( SWS_POINT
+                |SWS_AREA
+                |SWS_FAST_BILINEAR
+                |SWS_BICUBIC
+                |SWS_X
+                |SWS_GAUSS
+                |SWS_LANCZOS
+                |SWS_SINC
+                |SWS_SPLINE
+                |SWS_BICUBLIN);
+    if(!i || (i & (i-1)))
+    {
+        av_log(NULL, AV_LOG_ERROR, "swScaler: Exactly one scaler algorithm must be choosen\n");
+        return NULL;
+    }
+
+
     /* sanity check */
     if (srcW<4 || srcH<1 || dstW<8 || dstH<1) //FIXME check if these are enough and try to lowwer them after fixing the relevant parts of the code
     {