diff --git a/lib/7.8/modules/files.pmod b/lib/7.8/modules/files.pmod
new file mode 100644
index 0000000000000000000000000000000000000000..17dab065ea74e699dff96cf4ca18cffc7d93bcf7
--- /dev/null
+++ b/lib/7.8/modules/files.pmod
@@ -0,0 +1,7 @@
+#pike 7.9
+
+//! Pike 7.8 compatibility.
+//!
+//! In 7.8 and earlier "_Stdio" was named "files".
+
+inherit _Stdio;
diff --git a/lib/master.pike.in b/lib/master.pike.in
index 9c818970864ba9c45815f214021f57a6e6b5a031..d326d29e2880b19ab7e1578d5ba2832b54c22c2b 100644
--- a/lib/master.pike.in
+++ b/lib/master.pike.in
@@ -95,7 +95,7 @@ int is_pike_master = 0;
 
 // Have to access some stuff without going through the resolver.
 private object(_static_modules.Builtin) Builtin = _static_modules.Builtin();
-private constant Files = _static_modules.files;
+private constant Files = _static_modules._Stdio;
 
 #define Stat Files.Stat
 #define capitalize(X) (upper_case((X)[..0])+(X)[1..])
diff --git a/lib/modules/Stdio.pmod/module.pmod b/lib/modules/Stdio.pmod/module.pmod
index 03fb950f64c62b05d5451acd2d180ac5a5f95a85..005f476a95993605d16dec3967f087cd4410a543 100644
--- a/lib/modules/Stdio.pmod/module.pmod
+++ b/lib/modules/Stdio.pmod/module.pmod
@@ -1,6 +1,6 @@
 #pike __REAL_VERSION__
 
-inherit files;
+inherit _Stdio;
 
 #ifdef SENDFILE_DEBUG
 #define SF_WERR(X) werror("Stdio.sendfile(): %s\n", X)
@@ -259,7 +259,7 @@ class File
     return 0;
   }
 
-#if constant(files.__HAVE_OPENPT__)
+#if constant(_Stdio.__HAVE_OPENPT__)
   //! @decl int openpt(string mode)
   //!
   //! Open the master end of a pseudo-terminal pair.  The parameter
@@ -399,7 +399,7 @@ class File
     return 0;
   }
 
-#if constant(files.__HAVE_CONNECT_UNIX__)
+#if constant(_Stdio.__HAVE_CONNECT_UNIX__)
   int connect_unix(string path)
   //! Open a UNIX domain socket connection to the specified destination.
   //! 
@@ -620,7 +620,7 @@ class File
     }
   }
 
-#if constant(files.__HAVE_OPENAT__)
+#if constant(_Stdio.__HAVE_OPENAT__)
   //! @decl File openat(string filename, string mode)
   //! @decl File openat(string filename, string mode, int mask)
   //!
@@ -650,7 +650,7 @@ class File
   }
 #endif
 
-#if constant(files.__HAVE_SEND_FD__)
+#if constant(_Stdio.__HAVE_SEND_FD__)
   //!
   int(0..1) send_fd(File|Fd file)
   {
@@ -1968,7 +1968,7 @@ class FILE
 
   //! @endignore
 
-#if constant(files.__HAVE_OPENAT__)
+#if constant(_Stdio.__HAVE_OPENAT__)
   //! @decl FILE openat(string filename, string mode)
   //! @decl FILE openat(string filename, string mode, int mask)
   //!
@@ -3397,12 +3397,12 @@ object sendfile(array(string) headers,
 		function(int, mixed ...:void)|void cb,
 		mixed ... args)
 {
-#if !defined(DISABLE_FILES_SENDFILE) && constant(files.sendfile)
+#if !defined(DISABLE_FILES_SENDFILE) && constant(_Stdio.sendfile)
   // Try using files.sendfile().
   
   mixed err = catch {
-    return files.sendfile(headers, from, offset, len,
-			  trailers, to, cb, @args);
+    return _Stdio.sendfile(headers, from, offset, len,
+                           trailers, to, cb, @args);
   };
 
 #ifdef SENDFILE_DEBUG
@@ -3418,7 +3418,7 @@ object sendfile(array(string) headers,
 //! UDP (User Datagram Protocol) handling.
 class UDP
 {
-  inherit files.UDP;
+  inherit _Stdio.UDP;
 
   private array extra=0;
   private function(mapping,mixed...:void) callback=0;
diff --git a/lib/modules/Stdio.pmod/testsuite.in b/lib/modules/Stdio.pmod/testsuite.in
index 53848ab4315be74fd1e1b2fcd6c5be07057f261b..1764bd5ca9166d121a5f5b29faf09b8d5027984d 100644
--- a/lib/modules/Stdio.pmod/testsuite.in
+++ b/lib/modules/Stdio.pmod/testsuite.in
@@ -165,6 +165,11 @@ lambda()
 
 test_true(rm("testsuite.tmp"))
 
+test_any([[
+#pike 7.8
+  return !!files.Fd;
+]], 1)
+
 
 // Stdio.FakeFile
 
diff --git a/src/modules/files/.gitignore b/src/modules/_Stdio/.gitignore
similarity index 100%
rename from src/modules/files/.gitignore
rename to src/modules/_Stdio/.gitignore
diff --git a/src/modules/files/Makefile.in b/src/modules/_Stdio/Makefile.in
similarity index 100%
rename from src/modules/files/Makefile.in
rename to src/modules/_Stdio/Makefile.in
diff --git a/src/modules/files/acconfig.h b/src/modules/_Stdio/acconfig.h
similarity index 100%
rename from src/modules/files/acconfig.h
rename to src/modules/_Stdio/acconfig.h
diff --git a/src/modules/files/async_tls_close_test.pike b/src/modules/_Stdio/async_tls_close_test.pike
similarity index 100%
rename from src/modules/files/async_tls_close_test.pike
rename to src/modules/_Stdio/async_tls_close_test.pike
diff --git a/src/modules/files/configure.in b/src/modules/_Stdio/configure.in
similarity index 100%
rename from src/modules/files/configure.in
rename to src/modules/_Stdio/configure.in
diff --git a/src/modules/files/connecttest.pike b/src/modules/_Stdio/connecttest.pike
similarity index 100%
rename from src/modules/files/connecttest.pike
rename to src/modules/_Stdio/connecttest.pike
diff --git a/src/modules/files/datagram.c b/src/modules/_Stdio/datagram.c
similarity index 100%
rename from src/modules/files/datagram.c
rename to src/modules/_Stdio/datagram.c
diff --git a/src/modules/files/efuns.c b/src/modules/_Stdio/efuns.c
similarity index 100%
rename from src/modules/files/efuns.c
rename to src/modules/_Stdio/efuns.c
diff --git a/src/modules/files/file.c b/src/modules/_Stdio/file.c
similarity index 100%
rename from src/modules/files/file.c
rename to src/modules/_Stdio/file.c
diff --git a/src/modules/files/file.h b/src/modules/_Stdio/file.h
similarity index 100%
rename from src/modules/files/file.h
rename to src/modules/_Stdio/file.h
diff --git a/src/modules/files/file_functions.h b/src/modules/_Stdio/file_functions.h
similarity index 100%
rename from src/modules/files/file_functions.h
rename to src/modules/_Stdio/file_functions.h
diff --git a/src/modules/files/kqueuetest.pike b/src/modules/_Stdio/kqueuetest.pike
similarity index 100%
rename from src/modules/files/kqueuetest.pike
rename to src/modules/_Stdio/kqueuetest.pike
diff --git a/src/modules/files/sendfile.c b/src/modules/_Stdio/sendfile.c
similarity index 100%
rename from src/modules/files/sendfile.c
rename to src/modules/_Stdio/sendfile.c
diff --git a/src/modules/files/sendfiletest.pike b/src/modules/_Stdio/sendfiletest.pike
similarity index 100%
rename from src/modules/files/sendfiletest.pike
rename to src/modules/_Stdio/sendfiletest.pike
diff --git a/src/modules/files/socket.c b/src/modules/_Stdio/socket.c
similarity index 100%
rename from src/modules/files/socket.c
rename to src/modules/_Stdio/socket.c
diff --git a/src/modules/files/socktest.pike b/src/modules/_Stdio/socktest.pike
similarity index 100%
rename from src/modules/files/socktest.pike
rename to src/modules/_Stdio/socktest.pike
diff --git a/src/modules/files/stat.c b/src/modules/_Stdio/stat.c
similarity index 100%
rename from src/modules/files/stat.c
rename to src/modules/_Stdio/stat.c
diff --git a/src/modules/files/termios.c b/src/modules/_Stdio/termios.c
similarity index 100%
rename from src/modules/files/termios.c
rename to src/modules/_Stdio/termios.c
diff --git a/src/modules/files/termios_flags.h b/src/modules/_Stdio/termios_flags.h
similarity index 100%
rename from src/modules/files/termios_flags.h
rename to src/modules/_Stdio/termios_flags.h
diff --git a/src/modules/files/testsuite.in b/src/modules/_Stdio/testsuite.in
similarity index 100%
rename from src/modules/files/testsuite.in
rename to src/modules/_Stdio/testsuite.in
diff --git a/src/modules/files/udp.c b/src/modules/_Stdio/udp.c
similarity index 100%
rename from src/modules/files/udp.c
rename to src/modules/_Stdio/udp.c