diff --git a/common/utils/msc/msc.c b/common/utils/msc/msc.c
index 7de2a47f981f97aa12cefc7da5eb67e1c175c4d1..83f3beb51218c1b58aa04f1eedf12c7f7790be93 100644
--- a/common/utils/msc/msc.c
+++ b/common/utils/msc/msc.c
@@ -99,6 +99,7 @@ void *msc_task(void *args_p)
         break;
 
         case TERMINATE_MESSAGE: {
+          fprintf(stderr, " *** Exiting MSC thread\n");
           timer_remove(timer_id);
     	  msc_end();
           itti_exit_task();
diff --git a/openair2/ENB_APP/enb_app.c b/openair2/ENB_APP/enb_app.c
index 4a5981f50910e2fe3718184c81704632cc3fe806..bada59ffec993ba1795fc8b0593567b2c6f620e5 100644
--- a/openair2/ENB_APP/enb_app.c
+++ b/openair2/ENB_APP/enb_app.c
@@ -361,6 +361,7 @@ void *eNB_app_task(void *args_p)
 
     switch (ITTI_MSG_ID(msg_p)) {
     case TERMINATE_MESSAGE:
+      LOG_W(TASK_ENB_APP, " *** Exiting ENB_APP thread\n");
       itti_exit_task ();
       break;
 
diff --git a/openair2/ENB_APP/flexran_agent.c b/openair2/ENB_APP/flexran_agent.c
index 23ac8f02acc498c12ca0c1713801fe21a8a2b3e7..8af071527f480c9b2b9630d716be0b7f194a3762 100644
--- a/openair2/ENB_APP/flexran_agent.c
+++ b/openair2/ENB_APP/flexran_agent.c
@@ -74,6 +74,7 @@ void *flexran_agent_task(void *args){
 
     switch (ITTI_MSG_ID(msg_p)) {
     case TERMINATE_MESSAGE:
+      LOG_W(FLEXRAN_AGENT, " *** Exiting FLEXRAN thread\n");
       itti_exit_task ();
       break;
 
diff --git a/openair2/RRC/LITE/rrc_UE.c b/openair2/RRC/LITE/rrc_UE.c
index 6798212fb2e5f4082f7ea92a0a68d841e0dc7935..7f0c3a880088b0b9f53a5e9a9d0986411a235dc3 100644
--- a/openair2/RRC/LITE/rrc_UE.c
+++ b/openair2/RRC/LITE/rrc_UE.c
@@ -4286,6 +4286,7 @@ void *rrc_ue_task( void *args_p )
 
     switch (ITTI_MSG_ID(msg_p)) {
     case TERMINATE_MESSAGE:
+      LOG_W(RRC, " *** Exiting RRC thread\n");
       itti_exit_task ();
       break;
 
diff --git a/openair2/RRC/LITE/rrc_eNB.c b/openair2/RRC/LITE/rrc_eNB.c
index aaf12da1755f4f62eca1cae7e481b03628356d7e..c441c102e3618684e58bf954e330238658394ca2 100644
--- a/openair2/RRC/LITE/rrc_eNB.c
+++ b/openair2/RRC/LITE/rrc_eNB.c
@@ -5621,6 +5621,7 @@ rrc_enb_task(
 
     switch (ITTI_MSG_ID(msg_p)) {
     case TERMINATE_MESSAGE:
+      LOG_W(RRC, " *** Exiting RRC thread\n");
       itti_exit_task();
       break;
 
diff --git a/openair2/X2AP/x2ap.c b/openair2/X2AP/x2ap.c
index 699ad5ddbf31b0c92d95aedc110732b4297d3a7e..6af71e5ca59e1f328fc82d15758e15ebd40f4b81 100644
--- a/openair2/X2AP/x2ap.c
+++ b/openair2/X2AP/x2ap.c
@@ -49,6 +49,7 @@ void *x2ap_task(void *arg)
 
     switch (ITTI_MSG_ID(received_msg)) {
     case TERMINATE_MESSAGE:
+      X2AP_WARN(" *** Exiting X2AP thread\n");
       itti_exit_task();
       break;
 
diff --git a/openair3/GTPV1-U/gtpv1u_eNB.c b/openair3/GTPV1-U/gtpv1u_eNB.c
index e273ac0712b4ec5c9efc9e78456772e08fd8f54e..d0a3bbd3422ebab262df20d1bf841374b260e830 100644
--- a/openair3/GTPV1-U/gtpv1u_eNB.c
+++ b/openair3/GTPV1-U/gtpv1u_eNB.c
@@ -1132,6 +1132,7 @@ void *gtpv1u_eNB_task(void *args)
         hashtable_destroy (gtpv1u_data_g.teid_mapping);
       }
 
+      LOG_W(GTPU, " *** Exiting GTPU thread\n");
       itti_exit_task();
     }
     break;
diff --git a/openair3/GTPV1-U/gtpv1u_task.c b/openair3/GTPV1-U/gtpv1u_task.c
index f9397f21ca1b3e0dce873c1e9112a4344b2ab899..bea003a65571b2e3f9e3de1eb2d7ac2d2753d04f 100644
--- a/openair3/GTPV1-U/gtpv1u_task.c
+++ b/openair3/GTPV1-U/gtpv1u_task.c
@@ -423,6 +423,7 @@ static void *gtpv1u_thread(void *args)
     switch (ITTI_MSG_ID(received_message_p)) {
 
     case TERMINATE_MESSAGE: {
+      GTPU_WARN(" *** Exiting GTPU thread\n");
       itti_exit_task();
     }
     break;
diff --git a/openair3/S1AP/s1ap_eNB.c b/openair3/S1AP/s1ap_eNB.c
index 65b82055a34a2bfb45b027cd2002d2f939436647..b96d9103f465e7fac943e3ba64b98557c9d2c9ea 100644
--- a/openair3/S1AP/s1ap_eNB.c
+++ b/openair3/S1AP/s1ap_eNB.c
@@ -310,6 +310,7 @@ void *s1ap_eNB_task(void *arg)
 
     switch (ITTI_MSG_ID(received_msg)) {
     case TERMINATE_MESSAGE:
+      S1AP_WARN(" *** Exiting S1AP thread\n");
       itti_exit_task();
       break;
 
diff --git a/openair3/SCTP/sctp_eNB_task.c b/openair3/SCTP/sctp_eNB_task.c
index 1f166af74ccbe25d786e0189cec67f2fbb58ee94..758cbd5aa52574c5d85b84e7f692fcf15f3e3d4e 100644
--- a/openair3/SCTP/sctp_eNB_task.c
+++ b/openair3/SCTP/sctp_eNB_task.c
@@ -841,6 +841,7 @@ void *sctp_eNB_task(void *arg)
         break;
 
       case TERMINATE_MESSAGE:
+        SCTP_WARN("*** Exiting SCTP thread\n");
         itti_exit_task();
         break;
 
diff --git a/openair3/TEST/EPC_TEST/play_scenario_s1ap.c b/openair3/TEST/EPC_TEST/play_scenario_s1ap.c
index f1bbe393be8896fd2a6066b78a6073e1a677ee37..d2247f70a812635ef9f22e53c4c9baad7b278382 100644
--- a/openair3/TEST/EPC_TEST/play_scenario_s1ap.c
+++ b/openair3/TEST/EPC_TEST/play_scenario_s1ap.c
@@ -1089,6 +1089,7 @@ void *et_s1ap_eNB_task(void *arg)
 
     switch (ITTI_MSG_ID(received_msg)) {
     case TERMINATE_MESSAGE:
+      S1AP_WARN("*** Exiting S1AP thread\n");
       itti_exit_task();
       break;
 
diff --git a/openair3/UDP/udp_eNB_task.c b/openair3/UDP/udp_eNB_task.c
index b8b6b897a79c4d4924810869fd6819059c75ad3b..94c5612ec6c984e402eebe3ab74f63a5b702dae7 100644
--- a/openair3/UDP/udp_eNB_task.c
+++ b/openair3/UDP/udp_eNB_task.c
@@ -389,7 +389,7 @@ void *udp_eNB_task(void *args_p)
       break;
 
       case TERMINATE_MESSAGE: {
-        LOG_W(UDP_, "Received TERMINATE_MESSAGE\n");
+        LOG_W(UDP_, " *** Exiting UDP thread\n");
         itti_exit_task();
       }
       break;
diff --git a/targets/RT/USER/lte-enb.c b/targets/RT/USER/lte-enb.c
index 5cbe0fe1d4d2bb40bfd20c34512c0413d83234c3..222385541956ba4a909217bb4b9943a966888ae3 100644
--- a/targets/RT/USER/lte-enb.c
+++ b/targets/RT/USER/lte-enb.c
@@ -643,7 +643,9 @@ static void* eNB_thread_rxtx( void* param ) {
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_eNB_PROC_RXTX0+(proc->subframe_rx&1), 0 );
 
-  printf( "Exiting eNB thread RXn_TXnp4\n");
+#ifdef DEBUG_THREADS
+  printf(" *** Exiting eNB thread RXn_TXnp4\n");
+#endif
 
   eNB_thread_rxtx_status = 0;
   return &eNB_thread_rxtx_status;
@@ -907,6 +909,10 @@ static void* eNB_thread_asynch_rxtx( void* param ) {
     
   }
 
+#ifdef DEBUG_THREADS
+  printf(" *** Exiting eNB asynch rxtx thread\n");
+#endif
+
   eNB_thread_asynch_rxtx_status=0;
   return(&eNB_thread_asynch_rxtx_status);
 }
@@ -1372,6 +1378,10 @@ void *eNB_thread_synch(void *arg) {
 
   lte_sync_time_free();
 
+#ifdef DEBUG_THREADS
+  printf(" *** Exiting eNB synch thread\n");
+#endif
+
   return NULL;
 }
 
@@ -1484,7 +1494,9 @@ static void* eNB_thread_FH( void* param ) {
       rt_sleep_ns(800000LL);
   }
     
-  printf( "Exiting FH thread \n");
+#ifdef DEBUG_THREADS
+  printf(" *** Exiting FH thread \n");
+#endif
  
   eNB_thread_FH_status = 0;
   return &eNB_thread_FH_status;
@@ -1518,7 +1530,9 @@ static void* eNB_thread_prach( void* param ) {
     if (release_thread(&proc->mutex_prach,&proc->instance_cnt_prach,"eNB_prach_thread") < 0) break;
   }
 
-  printf( "Exiting eNB thread PRACH\n");
+#ifdef DEBUG_THREADS
+  printf(" *** Exiting eNB thread PRACH\n");
+#endif
 
   eNB_thread_prach_status = 0;
   return &eNB_thread_prach_status;
@@ -1688,7 +1702,9 @@ static void* eNB_thread_single( void* param ) {
   }
   
 
-  printf( "Exiting eNB_single thread \n");
+#ifdef DEBUG_THREADS
+  printf(" *** Exiting eNB_single thread\n");
+#endif
  
   eNB_thread_single_status = 0;
   return &eNB_thread_single_status;
diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c
index 042f77eea7d29f4ecb4c06fc532441980046b053..ed0dd20360d2a9d9cb330b915245ffc0a347666c 100644
--- a/targets/RT/USER/lte-softmodem.c
+++ b/targets/RT/USER/lte-softmodem.c
@@ -558,7 +558,7 @@ void *l2l1_task(void *arg) {
                 break;
 
             case TERMINATE_MESSAGE:
-                printf("received terminate message\n");
+                LOG_W(TASK_L2L1, " *** Exiting L2L1 thread\n");
                 oai_exit=1;
                 itti_exit_task ();
                 break;
@@ -579,6 +579,7 @@ void *l2l1_task(void *arg) {
 
         switch (ITTI_MSG_ID(message_p)) {
         case TERMINATE_MESSAGE:
+            LOG_W(TASK_L2L1, " *** Exiting L2L1 thread\n");
             oai_exit=1;
             itti_exit_task ();
             break;