--- /dev/null
+--- a/src/dsl_cpe_control.c
++++ b/src/dsl_cpe_control.c
+@@ -6504,7 +6504,7 @@ DSL_CPE_STATIC void DSL_CPE_Termination
+ /* ignore the signal, we'll handle by ourself */
+ signal (sig, SIG_IGN);
+
+- if (sig == SIGINT)
++ if (sig == SIGINT || sig == SIGTERM)
+ {
+ DSL_CCA_DEBUG(DSL_CCA_DBG_MSG, (DSL_CPE_PREFIX "terminated" DSL_CPE_CRLF));
+ DSL_CPE_Termination ();
+@@ -6803,6 +6803,7 @@ DSL_int_t dsl_cpe_daemon (
+
+ #ifndef RTEMS
+ signal (SIGINT, DSL_CPE_TerminationHandler);
++ signal (SIGTERM, DSL_CPE_TerminationHandler);
+ #endif /* RTEMS*/
+
+ /* Open DSL_CPE_MAX_DSL_ENTITIES devices*/