diff --git a/common/utils/itti/intertask_interface_dump.c b/common/utils/itti/intertask_interface_dump.c
index 60a00ebf6782b0ab26628e2d00e5d9e260873172..53ce31098886351697e1f4401b4938fada467d34 100644
--- a/common/utils/itti/intertask_interface_dump.c
+++ b/common/utils/itti/intertask_interface_dump.c
@@ -158,8 +158,10 @@ static int itti_dump_send_message(int sd, itti_dump_queue_item_t *message)
     /* Preparing the header */
     new_message->socket_header.message_size = size;
     new_message->socket_header.message_type = ITTI_DUMP_MESSAGE_TYPE;
-
-    new_message->signal_header.message_number = message->message_number;
+    /* Adds message number in unsigned decimal ASCII format */
+    snprintf(new_message->signal_header.message_number_char, sizeof(new_message->signal_header.message_number_char),
+             MESSAGE_NUMBER_CHAR_FORMAT, message->message_number);
+    new_message->signal_header.message_number_char[sizeof(new_message->signal_header.message_number_char) - 1] = '\n';
     /* Appends message payload */
     memcpy(&new_message[1], message->data, message->data_size);
 
@@ -184,15 +186,17 @@ static int itti_dump_send_message(int sd, itti_dump_queue_item_t *message)
 
 static int itti_dump_fwrite_message(itti_dump_queue_item_t *message)
 {
-    itti_socket_header_t header;
+    itti_dump_message_t  new_message_header;
 
     if ((dump_file != NULL) && (message != NULL)) {
 
-        header.message_size = message->message_size + sizeof(itti_dump_message_t) + sizeof(itti_message_types_t);
-        header.message_type = message->message_type;
+        new_message_header.socket_header.message_size = message->message_size + sizeof(itti_dump_message_t) + sizeof(itti_message_types_t);
+        new_message_header.socket_header.message_type = message->message_type;
+        snprintf(new_message_header.signal_header.message_number_char, sizeof(new_message_header.signal_header.message_number_char),
+                 MESSAGE_NUMBER_CHAR_FORMAT, message->message_number);
+        new_message_header.signal_header.message_number_char[sizeof(new_message_header.signal_header.message_number_char) - 1] = '\n';
 
-        fwrite (&header, sizeof(itti_socket_header_t), 1, dump_file);
-        fwrite (&message->message_number, sizeof(message->message_number), 1, dump_file);
+        fwrite (&new_message_header, sizeof(itti_dump_message_t), 1, dump_file);
         fwrite (message->data, message->data_size, 1, dump_file);
         fwrite (&itti_dump_message_type_end, sizeof(itti_message_types_t), 1, dump_file);
 // #if !defined(RTAI)
diff --git a/common/utils/itti/itti_types.h b/common/utils/itti/itti_types.h
index 4f91b354c91237fca8e5fc46b98c88498e57892d..83e6cbeb7d2638b3daa159ddc07a52916db588c6 100644
--- a/common/utils/itti/itti_types.h
+++ b/common/utils/itti/itti_types.h
@@ -38,6 +38,8 @@
 
 #define CHARS_TO_UINT32(c1, c2, c3, c4) (((c4) << 24) | ((c3) << 16) | ((c2) << 8) | (c1))
 
+#define MESSAGE_NUMBER_CHAR_FORMAT      "%11u"
+
 /* Intertask message types */
 enum itti_message_types_e
 {
@@ -66,7 +68,7 @@ typedef struct {
 } itti_socket_header_t;
 
 typedef struct {
-    uint32_t message_number;
+    char message_number_char[12]; /* 9 chars are needed to store an unsigned 32 bits value in decimal, but must be a multiple of 32 bits to avoid alignment issues */
 } itti_signal_header_t;
 
 
diff --git a/common/utils/itti_analyzer/libbuffers/socket.c b/common/utils/itti_analyzer/libbuffers/socket.c
index d8f6deac045b3659bb1bfb47aba98ec2a91be0cf..916bee948114cd96574dfd57413a25dfd4fc1965 100644
--- a/common/utils/itti_analyzer/libbuffers/socket.c
+++ b/common/utils/itti_analyzer/libbuffers/socket.c
@@ -115,7 +115,7 @@ static int socket_read_itti_message(socket_data_t        *socket_data,
         g_assert_not_reached();
     }
 
-    buffer->message_number = itti_signal_header.message_number;
+    sscanf (itti_signal_header.message_number_char, MESSAGE_NUMBER_CHAR_FORMAT, &buffer->message_number);
 //     buffer_dump(buffer, stdout);
 
     /* Update the number of signals received since last GUI update */
@@ -127,7 +127,7 @@ static int socket_read_itti_message(socket_data_t        *socket_data,
         socket_notify_gui_update(socket_data);
     }
 
-    g_debug("Successfully read new signal %u from socket", itti_signal_header.message_number);
+    g_debug("Successfully read new signal %u from socket", buffer->message_number);
 
     return total_data_read + sizeof(itti_signal_header);
 }
diff --git a/common/utils/itti_analyzer/libui/ui_notifications.c b/common/utils/itti_analyzer/libui/ui_notifications.c
index dae665407112113d095c73d7c655c6424c2cfc87..496545d910a37cd2fd6d4d627bd06e45ae7f923d 100644
--- a/common/utils/itti_analyzer/libui/ui_notifications.c
+++ b/common/utils/itti_analyzer/libui/ui_notifications.c
@@ -223,7 +223,7 @@ int ui_messages_read(char *file_name)
                                 g_assert_not_reached ();
                             }
 
-                            buffer->message_number = itti_signal_header->message_number;
+                            sscanf (itti_signal_header->message_number_char, MESSAGE_NUMBER_CHAR_FORMAT, &buffer->message_number);
 
                             ui_signal_add_to_list (buffer, ((read_messages % 1000) == 0) ? (gpointer) 1 : NULL);
 
@@ -305,7 +305,8 @@ static void ui_message_write_callback(const gpointer buffer, const gchar *signal
     message_header.message_size = sizeof(itti_socket_header_t) + sizeof(itti_signal_header) + message_size + sizeof(itti_message_types_t);
     message_header.message_type = ITTI_DUMP_MESSAGE_TYPE;
 
-    itti_signal_header.message_number = message_number;
+    sprintf(itti_signal_header.message_number_char, MESSAGE_NUMBER_CHAR_FORMAT, message_number);
+    itti_signal_header.message_number_char[sizeof(itti_signal_header.message_number_char) - 1] = '\n';
     message_number++;
 
     fwrite (&message_header, sizeof(message_header), 1, messages_file);