diff --git a/tests/Makefile b/tests/Makefile
index 6e3a5ffb3d636aecdf220af999f0fcda48d34863..66af99ea17decca00d6abaf79d1b27252fd7926b 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -21,7 +21,7 @@ test-server: vsynth1/0.pgm asynth1.sw
 	@$(SRC_PATH)/tests/server-regression.sh $(SERVER_REFFILE) $(SRC_PATH)/tests/test.conf
 
 # fast regression tests for all codecs
-codectest mpeg4 mpeg ac3: vsynth1/0.pgm vsynth2/0.pgm asynth1.sw tiny_psnr
+codectest mpeg4 mpeg ac3 snow: vsynth1/0.pgm vsynth2/0.pgm asynth1.sw tiny_psnr
 	@$(SRC_PATH)/tests/regression.sh $@ $(REFFILE1) vsynth1
 	@$(SRC_PATH)/tests/regression.sh $@ $(REFFILE2) vsynth2
 
diff --git a/tests/ffmpeg.regression.ref b/tests/ffmpeg.regression.ref
index 7e7e8f4a33b292d5e81d0e4aac71a002c0dd5640..3df44a89fcd69a09f71a4e02b1a3e8e064871425 100644
--- a/tests/ffmpeg.regression.ref
+++ b/tests/ffmpeg.regression.ref
@@ -119,6 +119,14 @@ a7ef4746f27be309138c188e327d3ebe *./data/a-ffv1.avi
 2653642 ./data/a-ffv1.avi
 799d3db687f6cdd7a837ec156efc171f *./data/out.yuv
 stddev:  0.00 PSNR:99.99 bytes:7602176
+ba3d08fe9c54acb58cb72e02476849d7 *./data/a-snow.avi
+1280600 ./data/a-snow.avi
+e4b8c83278efee032a84569c25593937 *./data/out.yuv
+stddev:  2.92 PSNR:38.79 bytes:7602176
+bf75e55f91bbc67c3efeaa023aae99d0 *./data/a-snow53.avi
+3555724 ./data/a-snow53.avi
+b8c0eea1938575abf0ae8bfb0bec7b92 *./data/out.yuv
+stddev:  0.14 PSNR:64.73 bytes:7602176
 b5b6275f58f012de73644bbaa9080097 *./data/a-svq1.mov
 1383999 ./data/a-svq1.mov
 ccc201054669e94717022bb4f2aea4ce *./data/out.yuv
diff --git a/tests/regression.sh b/tests/regression.sh
index e6e2e02661375a30ddbcfdb31891117a719f2bc0..853b335a7e6e36edbcb758c77430590c4ffd7780 100755
--- a/tests/regression.sh
+++ b/tests/regression.sh
@@ -36,6 +36,8 @@ elif [ "$1" = "huffyuv" ] ; then
     do_huffyuv=y
 elif [ "$1" = "mpeg2thread" ] ; then
     do_mpeg2thread=y
+elif [ "$1" = "snow" ] ; then
+    do_snow=y
 elif [ "$1" = "libavtest" ] ; then
     do_libav=y
     logfile="$datadir/libav.regression"
@@ -73,6 +75,7 @@ else
     do_ffv1=y
     do_error=y
     do_svq1=y
+    do_snow=y
 fi
 
 
@@ -440,6 +443,23 @@ do_ffmpeg $file -y -strict -1 -f pgmyuv -i $raw_src -an -vcodec ffv1 $file
 do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst 
 fi
 
+###################################
+if [ -n "$do_snow" ] ; then
+# snow encoding
+file=${outfile}snow.avi
+do_ffmpeg $file -y -strict -1 -f pgmyuv -i $raw_src -an -vcodec snow -qscale 2 $file
+
+# snow decoding
+do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst 
+
+# snow encoding
+file=${outfile}snow53.avi
+do_ffmpeg $file -y -strict -1 -f pgmyuv -i $raw_src -an -vcodec snow -pred 1 -qpel -4mv $file
+
+# snow decoding
+do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst 
+fi
+
 ###################################
 if [ -n "$do_svq1" ] ; then
 # svq1 encoding
diff --git a/tests/rotozoom.regression.ref b/tests/rotozoom.regression.ref
index f36cfd079220dee2801441c0c14a70ea1e815d89..47649cd5744bd01625ed178635956c24289b02b9 100644
--- a/tests/rotozoom.regression.ref
+++ b/tests/rotozoom.regression.ref
@@ -119,6 +119,14 @@ d0831a8339491fd680b650f05262e5d9 *./data/a-ffv1.avi
 3524768 ./data/a-ffv1.avi
 dde5895817ad9d219f79a52d0bdfb001 *./data/out.yuv
 stddev:  0.00 PSNR:99.99 bytes:7602176
+440794294cc44c4cb25e32b947ba3311 *./data/a-snow.avi
+332700 ./data/a-snow.avi
+1f3439e1b3ff09492f196a024d7119e3 *./data/out.yuv
+stddev:  2.37 PSNR:40.60 bytes:7602176
+d20607f4f75a7638e6c73e701c4b1fd3 *./data/a-snow53.avi
+2727012 ./data/a-snow53.avi
+b0d84bc6d6722d9ff5c9680358b97ab3 *./data/out.yuv
+stddev:  0.10 PSNR:67.58 bytes:7602176
 920c610ec324b772d882b0717e375943 *./data/a-svq1.mov
 768683 ./data/a-svq1.mov
 89b1946242e6998e05fc9a6e09668edd *./data/out.yuv