diff --git a/openerp/service/server.py b/openerp/service/server.py
index dad7f78e5dc1c830295de24d8ab756c18db9e102..617c2d757df73631a8a94712f83fda679971483a 100644
--- a/openerp/service/server.py
+++ b/openerp/service/server.py
@@ -9,10 +9,6 @@ import os.path
 import platform
 import psutil
 import random
-if os.name == 'posix':
-    import resource
-else:
-    resource = None
 import select
 import signal
 import socket
@@ -24,10 +20,15 @@ import unittest2
 
 import werkzeug.serving
 
-try:
+if os.name == 'posix':
+    # Unix only for workers
     import fcntl
-except ImportError:
-    pass
+    import resource
+else:
+    # Windows shim
+    signal.SIGHUP = 0
+
+# Optional process names for workers
 try:
     from setproctitle import setproctitle
 except ImportError:
@@ -674,8 +675,6 @@ class Worker(object):
                 raise
 
     def process_limit(self):
-        if resource is None:
-            return
         # If our parent changed sucide
         if self.ppid != os.getppid():
             _logger.info("Worker (%s) Parent changed", self.pid)