diff --git a/libfakeroot.c b/libfakeroot.c
index 26a3e90..5cb63e8 100644
--- a/libfakeroot.c
+++ b/libfakeroot.c
@@ -1145,6 +1145,10 @@ int WRAP_MKNOD MKNOD_ARG(int ver UNUSED,
   if(r)
     return -1;

+  /* empty file type means regular file */
+  if(!(mode & S_IFMT))
+    mode |= S_IFREG;
+
   st.st_mode= mode & ~old_mask;
   st.st_rdev= XMKNOD_FRTH_ARG dev;

@@ -1185,6 +1189,10 @@ int WRAP_MKNODAT MKNODAT_ARG(int ver UNUSED,
   if(r)
     return -1;

+  /* empty file type means regular file */
+  if(!(mode & S_IFMT))
+    mode |= S_IFREG;
+
   st.st_mode= mode & ~old_mask;
   st.st_rdev= XMKNODAT_FIFTH_ARG dev;

