diff --git a/tmcd/Ec2MetaServer.py.in b/tmcd/Ec2MetaServer.py.in
index 628a012a8038d8dd74c72d9e89a03952efd98f72..c0ae8ce5acc5110c4f7944ca9483cf932b840ab8 100755
--- a/tmcd/Ec2MetaServer.py.in
+++ b/tmcd/Ec2MetaServer.py.in
@@ -6,8 +6,6 @@ import os
 import sys
 import syslog
 import mysql.connector
-import daemon
-from daemon import pidfile
 
 # This requires Python 2.6+
 class Ec2MetaHandler(BaseHTTPRequestHandler):
@@ -243,15 +241,33 @@ class Ec2MetaHandler(BaseHTTPRequestHandler):
 if __name__ == '__main__':
     from BaseHTTPServer import HTTPServer
     import socket
-    metad = daemon.DaemonContext()
-    metad.pidfile = pidfile.TimeoutPIDLockFile('/var/run/tmcd-meta.pid', acquire_timeout=10)
-    llog = open("@prefix@/log/tmcd-meta.log","w+")
-    metad.stdout = llog
-    metad.stderr = llog
-
-    with metad:
-        server = HTTPServer((socket.gethostbyname(socket.gethostname()), 8787),
+
+    #
+    # Daemonize. We redirect our output into a log file cause I have no
+    # idea what is going to use plain print. 
+    # Lifted from xmlrpc/sslxmlrpc_server.py.in
+    #
+    try:
+        fp = open("@prefix@/log/tmcd-meta.log", "a");
+        sys.stdout = fp
+        sys.stderr = fp
+        sys.stdin.close();
+        pass
+    except:
+        print "Could not open log file for append"
+        sys.exit(1);
+        pass
+
+    pid = os.fork()
+    if pid:
+        os.system("echo " + str(pid) + " > /var/run/tmcd-meta.pid")
+        sys.exit(0)
+        pass
+    os.setsid();
+    pass
+
+    server = HTTPServer((socket.gethostbyname(socket.gethostname()), 8787),
             Ec2MetaHandler)
-        server.serve_forever()
+    server.serve_forever()