diff --git a/flatland/evaluators/service.py b/flatland/evaluators/service.py
index 201a3978e5dcebb01592f97116f9cdd7d8387646..0691d6328ce5fb1503f9a210970bd76fa0f3d584 100644
--- a/flatland/evaluators/service.py
+++ b/flatland/evaluators/service.py
@@ -13,10 +13,22 @@ import msgpack_numpy as m
 import os
 import glob
 import shutil
-import timeout_decorator
 import time
 import traceback
 import crowdai_api
+import timeout_decorator
+
+
+use_signals_in_timeout = True
+if os.name == 'nt':
+    """
+    Windows doesnt support signals, hence
+    timeout_decorators usually fall apart.
+    Hence forcing them to not using signals 
+    whenever using the timeout decorator.
+    """
+    use_signals_in_timeout = False
+
 m.patch()
 
 ########################################################
@@ -198,7 +210,9 @@ class FlatlandRemoteEvaluationService:
         _response['payload'] = payload
         return _response
 
-    @timeout_decorator.timeout(PER_STEP_TIMEOUT)  # timeout for each command
+    @timeout_decorator.timeout(
+                        PER_STEP_TIMEOUT,
+                        use_signals=use_signals_in_timeout)  # timeout for each command
     def _get_next_command(self, _redis):
         """
         A low level wrapper for obtaining the next command from a