diff --git a/common/utils/itti/intertask_interface.c b/common/utils/itti/intertask_interface.c
index e6c5d4ec5c187cdad207a1f0c813e72921f0a7eb..299ef66a0d2c42ec22374e4a4ceca4806f04c7a5 100644
--- a/common/utils/itti/intertask_interface.c
+++ b/common/utils/itti/intertask_interface.c
@@ -471,6 +471,8 @@ void itti_wait_tasks_end(void) {
         ITTI_DEBUG("Some threads are still running, force exit\n");
         exit (0);
     }
+
+    itti_dump_exit();
 }
 
 void itti_send_terminate_message(task_id_t task_id) {
diff --git a/common/utils/itti/intertask_interface_dump.c b/common/utils/itti/intertask_interface_dump.c
index 788b7d4a5cef1aab9efb5b6dfe3ecddf797d66ca..ab67d0880090c5608568c9cd0a66c9273a0a14f4 100644
--- a/common/utils/itti/intertask_interface_dump.c
+++ b/common/utils/itti/intertask_interface_dump.c
@@ -557,3 +557,12 @@ int itti_dump_init(const char * const messages_definition_xml, const char * cons
     }
     return 0;
 }
+
+void itti_dump_exit(void)
+{
+    if (dump_file != NULL)
+    {
+        fclose(dump_file);
+    }
+}
+
diff --git a/common/utils/itti/intertask_interface_dump.h b/common/utils/itti/intertask_interface_dump.h
index 3da638f5d16b7bb5d4d0892139cf8d752e85d7f0..d691316c0a2d213469ecaa82b8f4092998b3e6dd 100644
--- a/common/utils/itti/intertask_interface_dump.h
+++ b/common/utils/itti/intertask_interface_dump.h
@@ -36,4 +36,6 @@ int itti_dump_queue_message(message_number_t message_number, MessageDef *message
 
 int itti_dump_init(const char * const messages_definition_xml, const char * const dump_file_name);
 
+void itti_dump_exit(void);
+
 #endif /* INTERTASK_INTERFACE_DUMP_H_ */