diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index f6695303cf8514081fc10c23bb13980ab715d293..bd544f7d921c3b50fd9c8b44c1971523df456251 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -96,7 +96,8 @@ void avcodec_register_all(void)
     register_avcodec(&mpeg4aac_decoder);
 #endif
 #endif
-    register_avcodec(&mpeg_decoder);
+    register_avcodec(&mpeg1video_decoder);
+    register_avcodec(&mpeg2video_decoder);
 #ifdef HAVE_XVMC
     register_avcodec(&mpeg_xvmc_decoder);
 #endif
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 5a158096d2bfdf1230f36cf0802828d90bd73710..febb80b23b3aeeb6af4df232f7ad339be3755020 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -1309,7 +1309,8 @@ extern AVCodec msmpeg4v2_decoder;
 extern AVCodec msmpeg4v3_decoder;
 extern AVCodec wmv1_decoder;
 extern AVCodec wmv2_decoder;
-extern AVCodec mpeg_decoder;
+extern AVCodec mpeg1video_decoder;
+extern AVCodec mpeg2video_decoder;
 extern AVCodec mpeg_xvmc_decoder;
 extern AVCodec h263i_decoder;
 extern AVCodec flv_decoder;
diff --git a/libavcodec/mpeg12.c b/libavcodec/mpeg12.c
index a2a1bbd7ac9b3685d6f34c65604d2564e1e6bf65..d65ad86f211adc0a5a945eb8d21cf7af82c4b2da 100644
--- a/libavcodec/mpeg12.c
+++ b/libavcodec/mpeg12.c
@@ -2496,8 +2496,8 @@ static int mpeg_decode_end(AVCodecContext *avctx)
     return 0;
 }
 
-AVCodec mpeg_decoder = {
-    "mpegvideo",
+AVCodec mpeg1video_decoder = {
+    "mpeg1video",
     CODEC_TYPE_VIDEO,
     CODEC_ID_MPEG1VIDEO,
     sizeof(Mpeg1Context),
@@ -2509,6 +2509,19 @@ AVCodec mpeg_decoder = {
     .flush= ff_mpeg_flush,
 };
 
+AVCodec mpeg2video_decoder = {
+    "mpeg2video",
+    CODEC_TYPE_VIDEO,
+    CODEC_ID_MPEG2VIDEO,
+    sizeof(Mpeg1Context),
+    mpeg_decode_init,
+    NULL,
+    mpeg_decode_end,
+    mpeg_decode_frame,
+    CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED,
+    .flush= ff_mpeg_flush,
+};
+
 #ifdef HAVE_XVMC
 static int mpeg_mc_decode_init(AVCodecContext *avctx){
     Mpeg1Context *s;
diff --git a/tests/ffmpeg.regression.ref b/tests/ffmpeg.regression.ref
index a20dcf3727920dc1f24e08a7262aa574fe671991..8d7caa53b05cfb92e4ac9664665a34f04fbde6bc 100644
--- a/tests/ffmpeg.regression.ref
+++ b/tests/ffmpeg.regression.ref
@@ -2,6 +2,9 @@ ffmpeg regression test
 dda0ba041aef50a5101884291c06d4d9 *./data/a-mpeg1.mpg
 6713259d72260740bbddaea30631ea18 *./data/out.yuv
 stddev:  7.58 bytes:7299072
+17c66261cb5dc193793b5af9564c8592 *./data/a-mpeg2.vob
+9f5d85c6473b802a9d86cfc01a3ed046 *./data/out.yuv
+stddev:  7.66 bytes:7450624
 d0dc46dd831398237a690ebbeff18b64 *./data/a-msmpeg4v2.avi
 712aa6c959d1d90a78fe98657cbff19c *./data/out.yuv
 stddev:  8.11 bytes:7602176
diff --git a/tests/regression.sh b/tests/regression.sh
index 72ae9d0a9afcead87943a857b6117c6251d8f7a4..397bdc89a88dfb95e14be6d0eb36981fe6858233 100755
--- a/tests/regression.sh
+++ b/tests/regression.sh
@@ -32,6 +32,7 @@ elif [ "$1" = "libavtest" ] ; then
     outfile="$datadir/b-"
 else
     do_mpeg=y
+    do_mpeg2=y
     do_msmpeg4v2=y
     do_msmpeg4=y
     do_wmv1=y
@@ -121,10 +122,16 @@ do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -f mpeg1video $file
 
 # mpeg1 decoding
 do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
+fi
+
+###################################
+if [ -n "$do_mpeg2" ] ; then
+# mpeg2 encoding
+file=${outfile}mpeg2.vob
+do_ffmpeg $file -y -qscale 10 -f pgmyuv -i $raw_src -vcodec mpeg2video $file 
 
 # mpeg2 decoding
-#do_ffmpeg /tmp/out-mpeg2.yuv -y -f mpegvideo -i a.vob \
-#          -f rawvideo /tmp/out-mpeg2.yuv
+do_ffmpeg $raw_dst -y -i $file -f rawvideo $raw_dst
 fi
 
 ###################################
diff --git a/tests/rotozoom.regression.ref b/tests/rotozoom.regression.ref
index e1e264537f5cab5b0f11596cb0ace170786cdf86..4d38d0e9322a36f89840a8817eab8f329071a019 100644
--- a/tests/rotozoom.regression.ref
+++ b/tests/rotozoom.regression.ref
@@ -2,6 +2,9 @@ ffmpeg regression test
 1738d12380be0d8aa20d08e178349299 *./data/a-mpeg1.mpg
 0cf790edd0f4c5cf993c2d59211b9de2 *./data/out.yuv
 stddev:  4.91 bytes:7299072
+55cedcf0fb67e18718d6ed88da7784a4 *./data/a-mpeg2.vob
+f5436b327c38b66eb95f3428aff790f1 *./data/out.yuv
+stddev:  4.94 bytes:7450624
 14db391f167b52b21a983157b410affc *./data/a-msmpeg4v2.avi
 fc8881e0904af9491d5fa0163183954b *./data/out.yuv
 stddev:  5.29 bytes:7602176