diff --git a/src/libqmi-glib/qmi-utils.c b/src/libqmi-glib/qmi-utils.c
index 7fa4832cda106a40033de1320e2afd70b00a957b..f7d186c80b018e90026d05a6f33fd8be414a7b7b 100644
--- a/src/libqmi-glib/qmi-utils.c
+++ b/src/libqmi-glib/qmi-utils.c
@@ -151,8 +151,10 @@ __qmi_string_utf8_validate_printable (const guint8 *utf8,
 
         /* Explicitly allow CR and LF even if they're control characters, given
          * that NMEA traces reported via QMI LOC indications seem to have these
-         * suffixed. */
-        if (*p == '\r' || *p == '\n')
+         * suffixed.
+         * Also, explicitly allow TAB as some manufacturers seem to include it
+         * e.g. in model info strings. */
+        if (*p == '\r' || *p == '\n' || *p == '\t')
             continue;
 
         unichar = g_utf8_get_char (p);
diff --git a/src/libqmi-glib/test/test-message.c b/src/libqmi-glib/test/test-message.c
index 7fbfbecb4ac5366b3f6d2b8d66a6a66d587c7fda..885be340bc857caa27ebb2ba8a9ccb717dc00f3a 100644
--- a/src/libqmi-glib/test/test-message.c
+++ b/src/libqmi-glib/test/test-message.c
@@ -279,6 +279,23 @@ test_message_parse_string_with_trailing_nul (void)
 
 #endif
 
+#if defined HAVE_QMI_MESSAGE_DMS_GET_MODEL
+
+static void
+test_message_parse_string_with_trailing_tab (void)
+{
+    /* Quectel EM12-AW model strint has a trailing TAB character (ASCII 0x09) */
+    const guint8 buffer[] = {
+        0x01, 0x1E, 0x00, 0x80, 0x02, 0x05, 0x02, 0x01, 0x00, 0x22, 0x00, 0x12,
+        0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x45,
+        0x4D, 0x31, 0x32, 0x2D, 0x41, 0x57, 0x09
+    };
+
+    test_message_printable_common (buffer, sizeof (buffer), QMI_MESSAGE_VENDOR_GENERIC, "EM12-AW");
+}
+
+#endif
+
 /*****************************************************************************/
 
 static void
@@ -1580,6 +1597,9 @@ int main (int argc, char **argv)
 #if defined HAVE_QMI_MESSAGE_DMS_SWI_GET_CURRENT_FIRMWARE
     g_test_add_func ("/libqmi-glib/message/parse/string-with-trailing-nul", test_message_parse_string_with_trailing_nul);
 #endif
+#if defined HAVE_QMI_MESSAGE_DMS_GET_MODEL
+    g_test_add_func ("/libqmi-glib/message/parse/string-with-trailing-tab", test_message_parse_string_with_trailing_tab);
+#endif
 
     g_test_add_func ("/libqmi-glib/message/new/request",           test_message_new_request);
     g_test_add_func ("/libqmi-glib/message/new/request-from-data", test_message_new_request_from_data);