fix
diff --git a/ChangeLog b/ChangeLog
index dff2600..b17a3b2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2005-02-10  Miklos Szeredi <miklos@szeredi.hu>
+
+	* fusermount: set umask, otherwise /etc/mtab will have
+	unpredictable permission.  Spotted by Jindrich Kolorenc
+
+	* fusermount: set owner and group of /etc/mtab to original values
+	on unmount
+	
 2005-02-07  Miklos Szeredi <miklos@szeredi.hu>
 
 	* Cleaned up directory reading (temporary file is not used)
diff --git a/util/fusermount.c b/util/fusermount.c
index 4f9ed2f..1b79446 100644
--- a/util/fusermount.c
+++ b/util/fusermount.c
@@ -240,6 +240,7 @@
                           const char *mtab, const char *mtab_new)
 {
     int res;
+    struct stat sbuf;
 
     if (getuid() != 0) {
         res = drop_privs();
@@ -253,6 +254,9 @@
     if (getuid() != 0)
         restore_privs();
 
+    if (stat(mtab, &sbuf) == 0)
+        chown(mtab_new, sbuf.st_uid, sbuf.st_gid);
+
     res = rename(mtab_new, mtab);
     if (res == -1) {
         fprintf(stderr, "%s: failed to rename %s to %s: %s\n", progname,
@@ -1046,6 +1050,7 @@
     if (getuid() != 0)
         restore_privs();
 
+    umask(033);
     if (unmount) {
         if (geteuid() == 0) {
             int mtablock = lock_mtab();