diff --git a/libswscale/swscale.c b/libswscale/swscale.c
index 9a74f95f86303abd76413050e0658b2f2b9ff07a..17fe3c6fa7304671fe890f0a8ab881bd42712be1 100644
--- a/libswscale/swscale.c
+++ b/libswscale/swscale.c
@@ -1989,11 +1989,8 @@ static int planarCopy(SwsContext *c, uint8_t* src[], int srcStride[], int srcSli
         int y=      plane==0 ? srcSliceY: -((-srcSliceY)>>c->chrDstVSubSample);
         int height= plane==0 ? srcSliceH: -((-srcSliceH)>>c->chrDstVSubSample);
 
-        if ((isGray(c->srcFormat) || isGray(c->dstFormat)) && plane>0)
-        {
-            if (!isGray(c->dstFormat))
+        if (dst[plane] && !src[plane])
                 fillPlane(dst[plane], dstStride[plane], length, height, y, 128);
-        }
         else
         {
             if (dstStride[plane]==srcStride[plane] && srcStride[plane] > 0)