diff --git a/run.py b/run.py
index f56e0569d4653c56e5110abca8ffcdb3df8b3ed4..f50c6319f0fbefbc07a4d38557eee932f4050a0f 100755
--- a/run.py
+++ b/run.py
@@ -26,6 +26,7 @@ import os
 import sys
 import signal
 import logging
+import threading
 
 from flask               import Flask
 from flask_sqlalchemy    import SQLAlchemy
@@ -54,7 +55,6 @@ class EngineRunner:
     logger = None
     config = None
     engine = None
-    lqs = None
 
 
     def __init__(self):
@@ -64,12 +64,12 @@ class EngineRunner:
         self.config = config
         AuraLogger(self.config)
         self.logger = logging.getLogger("AuraEngine")
-        
+
 
     def run(self):
         """
         Starts Engine Core.
-        """                        
+        """
         from src.engine import Engine
         self.engine = Engine()
 
@@ -86,15 +86,14 @@ class EngineRunner:
         """
         Shutdown of the engine. Also terminates the Liquidsoap thread.
         """
+        for thread in threading.enumerate():
+            self.logger.info(thread.name)
+
         if self.engine:
             self.engine.terminate()
 
-        if self.lqs:
-            self.lqs.terminate()
-            self.logger.info("Terminated Liquidsoap")
-
-        self.logger.info("Gracefully terminated Aura Engine! (signum:%s, frame:%s)" % (signum, frame))
-        sys.exit(0)        
+        self.logger.info(f"Gracefully terminated Aura Engine! (signum:{signum}, frame:{frame})")
+        sys.exit(0)
 
 
 
@@ -103,7 +102,7 @@ class EngineRunner:
 #
 
 
-if __name__ == "__main__":        
+if __name__ == "__main__":
     runner = EngineRunner()
     signal.signal(signal.SIGINT, runner.exit_gracefully)
     signal.signal(signal.SIGTERM, runner.exit_gracefully)
@@ -112,5 +111,5 @@ if __name__ == "__main__":
         if "--recreate-database" in sys.argv:
             runner.recreate_db()
             sys.exit(0)
-         
+
     runner.run()
diff --git a/src/engine.py b/src/engine.py
index da4e963e64be68a3bdac97d95fd83010a597b8c7..af8aebedbc9d0550c236fd58ccecefe457cbfc78 100644
--- a/src/engine.py
+++ b/src/engine.py
@@ -167,10 +167,12 @@ class Engine():
         """
         Terminates the engine and all related processes.
         """
+        if self.scheduler: self.scheduler.terminate()
         if self.eci: self.eci.terminate()
 
 
 
+
 #
 #   PLAYER
 #
diff --git a/src/scheduling/api.py b/src/scheduling/api.py
index c7e976579c53117dcf2599ba624a0ced9820a067..e566c1aa673c39331cd5eaaa56e2ea834d8aa9fd 100644
--- a/src/scheduling/api.py
+++ b/src/scheduling/api.py
@@ -304,5 +304,5 @@ class ApiFetcher(threading.Thread):
         """
         Terminates the thread.
         """
-        self.logger.info("Shutting down API fetcher...")
+        self.logger.info(SU.yellow("[ApiFetcher] Shutting down..."))
         self.stop_event.set()
diff --git a/src/scheduling/programme.py b/src/scheduling/programme.py
index 3c29ca1396f0900feb408dc35465e6ffba97a4cb..fb15cdfe30d4bb38467d44efceace20d2c08c35c 100644
--- a/src/scheduling/programme.py
+++ b/src/scheduling/programme.py
@@ -230,7 +230,7 @@ class ProgrammeService():
         """
         Called when thread is stopped or a signal to terminate is received.
         """
-        self.logger.info("Shutting down programme service ...")
+        self.logger.info(SU.yellow("[ProgrammeService] Shutting down..."))
         if self.api_fetcher:
             self.api_fetcher.terminate()
 
diff --git a/src/scheduling/scheduler.py b/src/scheduling/scheduler.py
index 62cbfd5df3551aae055a9746b68cd2976fa16e79..a9728f72135cd25dab146d399b5f215ec098500b 100644
--- a/src/scheduling/scheduler.py
+++ b/src/scheduling/scheduler.py
@@ -407,7 +407,7 @@ class AuraScheduler(threading.Thread):
         """
         Called when thread is stopped or a signal to terminate is received.
         """
-        self.logger.info("Shutting down scheduler ...")
+        self.logger.info(SU.yellow("[Scheduler] Shutting down..."))
         self.programme.terminate()
         self.exit_event.set()