diff --git a/libav/utils.c b/libav/utils.c
index 492b3c52b825e5b5b0b256d62b78cbd4e4cb4265..c5eaeac05d50d465efcbed9979b060f54ef7f1ce 100644
--- a/libav/utils.c
+++ b/libav/utils.c
@@ -353,6 +353,14 @@ int av_open_input_file(AVFormatContext **ic_ptr, const char *filename,
         goto fail;
     }
         
+    /* XXX: suppress this hack for redirectors */
+    if (fmt == &redir_demux) {
+        err = redir_open(ic_ptr, &ic->pb);
+        url_fclose(&ic->pb);
+        av_free(ic);
+        return err;
+    }
+
     ic->iformat = fmt;
 
     /* allocate private data */