diff --git a/modules/LIST b/modules/LIST
index e857fa40362409e3a77eebbe9f42c00e9aaf8eb7..8c1e71d3c240aee15e9cd040beef66ac006af9c4 100644
--- a/modules/LIST
+++ b/modules/LIST
@@ -160,6 +160,7 @@ $Id$
  * i422_yuy2: planar 4:2:2 YUV to packed YUV conversion functions
  * i422_yuy2_mmx: MMX accelerated version of i422_yuy2
  * i422_yuy2_sse2: sse2 accelerated version of i422_yuy2
+ * idummy: dummy input
  * image: Image file video output
  * inhibit: preventing the computer from suspending
  * invert: inverse video filter
diff --git a/modules/access/Modules.am b/modules/access/Modules.am
index 3183db7f21bbd1f800fad0dc5a199b1074828668..0aa8d8b0f270238d0d8da25ec78e75f09ecb8ced 100644
--- a/modules/access/Modules.am
+++ b/modules/access/Modules.am
@@ -21,6 +21,11 @@ libfilesystem_plugin_la_CFLAGS = $(AM_CFLAGS)
 libfilesystem_plugin_la_LIBADD = $(AM_LIBADD)
 libfilesystem_plugin_la_DEPENDENCIES =
 
+libidummy_plugin_la_SOURCES = idummy.c
+libidummy_plugin_la_CFLAGS = $(AM_CFLAGS)
+libidummy_plugin_la_LIBADD = $(AM_LIBADD)
+libidummy_plugin_la_DEPENDENCIES =
+
 libsdp_plugin_la_SOURCES = sdp.c
 libsdp_plugin_la_CFLAGS = $(AM_CFLAGS)
 libsdp_plugin_la_LIBADD = $(AM_LIBADD)
@@ -80,6 +85,7 @@ libaccess_rtmp_plugin_la_DEPENDENCIES =
 
 libvlc_LTLIBRARIES += \
 	libfilesystem_plugin.la \
+	libidummy_plugin.la \
 	libaccess_udp_plugin.la \
 	libaccess_tcp_plugin.la \
 	libaccess_http_plugin.la \
diff --git a/modules/misc/dummy/input.c b/modules/access/idummy.c
similarity index 92%
rename from modules/misc/dummy/input.c
rename to modules/access/idummy.c
index 31b3c5162041b96d3534ca821882a413e839d393..51f2692fb4b970f7e6c6fdfaca0b6fc48e675538 100644
--- a/modules/misc/dummy/input.c
+++ b/modules/access/idummy.c
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * input_dummy.c: dummy input plugin, to manage "vlc://" special options
+ * idummy.c: dummy input plugin, to manage "vlc://" special options
  *****************************************************************************
  * Copyright (C) 2001, 2002 the VideoLAN team
  * $Id$
@@ -30,11 +30,21 @@
 #endif
 
 #include <vlc_common.h>
+#include <vlc_plugin.h>
 #include <vlc_interface.h>
 #include <vlc_demux.h>
 #include <vlc_charset.h>
 
-#include "dummy.h"
+static int OpenDemux( vlc_object_t * );
+static void CloseDemux( vlc_object_t * );
+
+vlc_module_begin ()
+    set_shortname( N_("Dummy") )
+    set_description( N_("Dummy input") )
+    set_capability( "access_demux", 0 )
+    set_callbacks( OpenDemux, CloseDemux )
+    add_shortcut( "dummy", "vlc" )
+vlc_module_end ()
 
 static int DemuxControl( demux_t *, int, va_list );
 
@@ -129,7 +139,7 @@ static int ControlPause( demux_t *demux, int query, va_list args )
 /*****************************************************************************
  * OpenDemux: initialize the target, ie. parse the command
  *****************************************************************************/
-int OpenDemux ( vlc_object_t *p_this )
+static int OpenDemux( vlc_object_t *p_this )
 {
     demux_t *p_demux = (demux_t*)p_this;
     char * psz_name = p_demux->psz_location;
@@ -195,7 +205,7 @@ nop:
 /*****************************************************************************
  * CloseDemux: initialize the target, ie. parse the command
  *****************************************************************************/
-void CloseDemux ( vlc_object_t *p_this )
+static void CloseDemux( vlc_object_t *p_this )
 {
     demux_t *p_demux = (demux_t*)p_this;
 
diff --git a/modules/misc/dummy/Modules.am b/modules/misc/dummy/Modules.am
index ae454e4ce310ae813b271f457840bae7c953615c..92a197d7cc277ed410d7a86f81ad3156b130a294 100644
--- a/modules/misc/dummy/Modules.am
+++ b/modules/misc/dummy/Modules.am
@@ -2,7 +2,6 @@ SOURCES_dummy = \
 	dummy.c \
 	dummy.h \
 	interface.c \
-	input.c \
 	decoder.c \
 	encoder.c \
 	renderer.c \
diff --git a/modules/misc/dummy/dummy.c b/modules/misc/dummy/dummy.c
index fd9f726cd1369709cf2d1867fc169c8a4966ab88..e68ecfbb88a8282ee5c9dc5df41dee25f74b61aa 100644
--- a/modules/misc/dummy/dummy.c
+++ b/modules/misc/dummy/dummy.c
@@ -63,11 +63,6 @@ vlc_module_begin ()
     add_category_hint( N_("Interface"), NULL, false )
     add_bool( "dummy-quiet", false, QUIET_TEXT, QUIET_LONGTEXT, false )
 #endif
-    add_submodule ()
-        set_description( N_("Dummy demux function") )
-        set_capability( "access_demux", 0 )
-        set_callbacks( OpenDemux, CloseDemux )
-        add_shortcut( "vlc" )
     add_submodule ()
         set_section( N_( "Dummy decoder" ), NULL )
         set_description( N_("Dummy decoder function") )
diff --git a/modules/misc/dummy/dummy.h b/modules/misc/dummy/dummy.h
index 297f6799a3c47b9bee7802efdebbeead70a1ffbf..a5a284b338d72216272e79c86c5dc4adcca05723 100644
--- a/modules/misc/dummy/dummy.h
+++ b/modules/misc/dummy/dummy.h
@@ -26,9 +26,6 @@
  *****************************************************************************/
 int  OpenIntf     ( vlc_object_t * );
 
-int  OpenDemux    ( vlc_object_t * );
-void CloseDemux   ( vlc_object_t * );
-
 int  OpenDecoder    ( vlc_object_t * );
 int  OpenDecoderDump( vlc_object_t * );
 void CloseDecoder   ( vlc_object_t * );
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 4d77eca16297330abb7a98c2d9a9d05d0d7334da..587a45ebc5e89f2534dac7cdb2a0622ddbe589a8 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -207,6 +207,7 @@ modules/access/fs.c
 modules/access/ftp.c
 modules/access/gnomevfs.c
 modules/access/http.c
+modules/access/idummy.c
 modules/access/imem.c
 modules/access/jack.c
 modules/access/linsys/linsys_sdi.c
@@ -911,7 +912,6 @@ modules/misc/dummy/decoder.c
 modules/misc/dummy/dummy.c
 modules/misc/dummy/dummy.h
 modules/misc/dummy/encoder.c
-modules/misc/dummy/input.c
 modules/misc/dummy/interface.c
 modules/misc/dummy/renderer.c
 modules/misc/gnutls.c