diff --git a/opentrafficshaperd b/opentrafficshaperd
index 949f7ddbe70bb67cd4b0280805c02899c6556ee0..0c57692222f7efa2f88a8a381cbfb3b6eec9f512 100755
--- a/opentrafficshaperd
+++ b/opentrafficshaperd
@@ -27,6 +27,7 @@ use lib('/usr/local/lib/opentrafficshaper-1.0','/usr/lib/opentrafficshaper-1.0',
 use Config::IniFiles;
 use Getopt::Long;
 use POE;
+use POSIX qw(setsid);
 use Time::HiRes qw(time);
 
 # Our own stuff
@@ -281,4 +282,29 @@ sub plugin_register {
 	return 0;
 }
 
+# NK: Needs work
+# Become daemon
+sub daemonize {
+	chdir '/'
+			or die "Can't chdir to /: $!";
+
+	open STDIN, '/dev/null'
+			or die "Can't read /dev/null: $!";
+
+	open STDOUT, '> /var/log/ppp-gatekeeper/stdout.log'
+			or die "Can't open stdout log: $!";
+
+	defined(my $pid = fork) 
+			or die "Can't fork: $!";
+
+	exit if $pid;
+
+	setsid
+			or die "Can't start a new session: $!";
+
+	open STDERR, '> /var/log/ppp-gatekeeper/stderr.log'
+			or die "Can't open stderr log: $!";
+}
+
+
 # vim: ts=4