diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c
index 2c304da94a13e2afb6836e222c45b02c72bf84e9..36b4cf16766a1d39e12134f397526dfa0d34ac92 100644
--- a/libavformat/mpegenc.c
+++ b/libavformat/mpegenc.c
@@ -20,7 +20,6 @@
  */
 
 #include "avformat.h"
-#include "allformats.h"
 #include "bitstream.h"
 #include "fifo.h"
 #include "mpeg.h"
@@ -77,6 +76,11 @@ typedef struct {
 
 } MpegMuxContext;
 
+extern AVOutputFormat mpeg1vcd_muxer;
+extern AVOutputFormat mpeg2dvd_muxer;
+extern AVOutputFormat mpeg2svcd_muxer;
+extern AVOutputFormat mpeg2vob_muxer;
+
 static int put_pack_header(AVFormatContext *ctx,
                            uint8_t *buf, int64_t timestamp)
 {
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index de38221b9c93a62632b7ea43bdbab52a170cdfae..d4e40b2adce61f440fbae98f90b9e7fadc789e2f 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -21,7 +21,6 @@
 #include "avformat.h"
 #include "crc.h"
 #include "mpegts.h"
-#include "allformats.h"
 
 //#define DEBUG_SI
 //#define DEBUG_SEEK
@@ -145,6 +144,8 @@ struct PESContext {
     uint8_t header[MAX_PES_HEADER_SIZE];
 };
 
+extern AVInputFormat mpegts_demuxer;
+
 /**
  *  Assembles PES packets out of TS packets, and then calls the "section_cb"
  *  function when they are complete.
diff --git a/libavformat/riff.c b/libavformat/riff.c
index 4ad732daba7b3fc8dddc8a8d789762eea147e264..bcc19b272cd93fb89239a30765ed04e3a38d66ee 100644
--- a/libavformat/riff.c
+++ b/libavformat/riff.c
@@ -22,7 +22,6 @@
 #include "avformat.h"
 #include "avcodec.h"
 #include "riff.h"
-#include "allformats.h" // for asf_muxer
 
 /* Note: when encoding, the first matching tag is used, so order is
    important if multiple tags possible for a given codec. */
diff --git a/libavformat/thp.c b/libavformat/thp.c
index 2b7533c6e2c3faf6afe75242f9466b2a40063918..f1cc8ae26bff7e0cf16c98d39f0c34fb17f234b3 100644
--- a/libavformat/thp.c
+++ b/libavformat/thp.c
@@ -21,7 +21,6 @@
 
 
 #include "avformat.h"
-#include "allformats.h"
 
 typedef struct ThpDemuxContext {
     int              version;
diff --git a/libavformat/utils.c b/libavformat/utils.c
index e80e57966eb090a49a1599730e4eb8fbfa790f10..1e04bd217c8421360328542389f4ebd2970f8da4 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -19,7 +19,6 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 #include "avformat.h"
-#include "allformats.h"
 #include "opt.h"
 #include "avstring.h"
 #include "riff.h"
@@ -468,7 +467,7 @@ int av_open_input_file(AVFormatContext **ic_ptr, const char *filename,
 
     /* XXX: suppress this hack for redirectors */
 #ifdef CONFIG_REDIR_DEMUXER
-    if (fmt == &redir_demuxer) {
+    if (!strcmp(fmt->name, "redir")) {
         int redir_open(AVFormatContext **ic_ptr, ByteIOContext *f);
         err = redir_open(ic_ptr, pb);
         url_fclose(pb);
diff --git a/libavformat/wv.c b/libavformat/wv.c
index 14579db92a5ecce58256656b30c5f2ffc30f1cad..c8e4a40f24251ebc40fdc62a4484bc4f410570b1 100644
--- a/libavformat/wv.c
+++ b/libavformat/wv.c
@@ -20,7 +20,6 @@
  */
 
 #include "avformat.h"
-#include "allformats.h"
 #include "bswap.h"
 
 // specs say that maximum block size is 1Mb