diff --git a/kolabd/__init__.py b/kolabd/__init__.py
--- a/kolabd/__init__.py
+++ b/kolabd/__init__.py
@@ -172,7 +172,7 @@
                 # Give up the session, all control,
                 # all open file descriptors, see #5151
                 os.chdir("/")
-                os.umask(0)
+                old_umask = os.umask(0)
                 os.setsid()
 
                 pid = os.fork()
@@ -191,6 +191,8 @@
                 os.open(os.devnull, os.O_WRONLY)
                 os.open(os.devnull, os.O_WRONLY)
 
+                os.umask(old_umask)
+
                 log.remove_stdout_handler()
                 self.set_signal_handlers()
                 self.write_pid()
diff --git a/saslauthd/__init__.py b/saslauthd/__init__.py
--- a/saslauthd/__init__.py
+++ b/saslauthd/__init__.py
@@ -138,7 +138,7 @@
                 # Give up the session, all control,
                 # all open file descriptors, see #5151
                 os.chdir("/")
-                os.umask(0)
+                old_umask = os.umask(0)
                 os.setsid()
 
                 pid = os.fork()
@@ -153,6 +153,8 @@
                 os.close(1)
                 os.close(2)
 
+                os.umask(old_umask)
+
                 self.thread_count += 1
                 log.remove_stdout_handler()
                 self.set_signal_handlers()
diff --git a/wallace/__init__.py b/wallace/__init__.py
--- a/wallace/__init__.py
+++ b/wallace/__init__.py
@@ -618,7 +618,7 @@
                 # Give up the session, all control,
                 # all open file descriptors, see #5151
                 os.chdir("/")
-                os.umask(0)
+                old_umask = os.umask(0)
                 os.setsid()
 
                 pid = os.fork()
@@ -637,6 +637,8 @@
                 os.open(os.devnull, os.O_WRONLY)
                 os.open(os.devnull, os.O_WRONLY)
 
+                os.umask(old_umask)
+
                 log.remove_stdout_handler()
                 self.set_signal_handlers()
                 self.write_pid()