diff --git a/postproc/swscale.c b/postproc/swscale.c
index bfe39af4cf327549861fbb758982ffe1783e3980..4be341d9dc4d0f0149de25a21e8b5fe21f9ca45c 100644
--- a/postproc/swscale.c
+++ b/postproc/swscale.c
@@ -1297,8 +1297,8 @@ static void simpleCopy(SwsContext *c, uint8_t* srcParam[], int srcStrideParam[],
 			int length=0;
 
 			/* universal length finder */
-			while(length+c->srcW <= dstStride[0] 
-			   && length+c->srcW <= srcStride[0]) length+= c->srcW;
+			while(length+c->srcW <= ABS(dstStride[0]) 
+			   && length+c->srcW <= ABS(srcStride[0])) length+= c->srcW;
 			ASSERT(length!=0);
 
 			for(i=0; i<srcSliceH; i++)