diff --git a/mysql-test/main/session_tracker_sysvar.result b/mysql-test/main/session_tracker_sysvar.result
index 6b56cb400b8..f2f73661a39 100644
--- a/mysql-test/main/session_tracker_sysvar.result
+++ b/mysql-test/main/session_tracker_sysvar.result
@@ -27,6 +27,56 @@ drop table t1;
 -- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
 -- last_gtid: 0-1-1002
 
+SET @@session.session_track_system_variables='last_gtid,gtid_domain_id';
+create table t1 (a int) engine=innodb;
+-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
+-- last_gtid: 0-1-1003
+
+set statement gtid_domain_id=0 for insert into t1 values (0);
+-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
+-- gtid_domain_id: 0
+-- last_gtid: 0-1-1004
+
+set statement gtid_domain_id=1 for insert into t1 values (1);
+-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
+-- gtid_domain_id: 1
+-- last_gtid: 1-1-1
+
+set statement gtid_domain_id=2 for insert into t1 values (2);
+-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
+-- gtid_domain_id: 2
+-- last_gtid: 2-1-1
+
+set statement gtid_domain_id=3 for insert into t1 values (3);
+-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
+-- gtid_domain_id: 3
+-- last_gtid: 3-1-1
+
+set statement gtid_domain_id=4 for insert into t1 values (4);
+-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
+-- gtid_domain_id: 4
+-- last_gtid: 4-1-1
+
+set statement gtid_domain_id=5 for insert into t1 values (5);
+-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
+-- gtid_domain_id: 5
+-- last_gtid: 5-1-1
+
+set statement gtid_domain_id=5 for insert into t1 values (5);
+-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
+-- gtid_domain_id: 5
+-- last_gtid: 5-1-2
+
+set statement gtid_domain_id=5 for insert into t1 values (5);
+-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
+-- gtid_domain_id: 5
+-- last_gtid: 5-1-3
+
+drop table t1;
+-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
+-- gtid_domain_id: 0
+-- last_gtid: 0-1-1005
+
 reset master;
 #
 # MDEV-35086 Trying to lock mutex when the mutex was already locked (session_tracker.cc), server hangs
diff --git a/mysql-test/main/session_tracker_sysvar.test b/mysql-test/main/session_tracker_sysvar.test
index 54b69782697..fe41e7ce98f 100644
--- a/mysql-test/main/session_tracker_sysvar.test
+++ b/mysql-test/main/session_tracker_sysvar.test
@@ -16,6 +16,18 @@ insert into t1 values (1);
 select @@last_gtid;
 drop table t1;
 
+SET @@session.session_track_system_variables='last_gtid,gtid_domain_id';
+create table t1 (a int) engine=innodb;
+set statement gtid_domain_id=0 for insert into t1 values (0);
+set statement gtid_domain_id=1 for insert into t1 values (1);
+set statement gtid_domain_id=2 for insert into t1 values (2);
+set statement gtid_domain_id=3 for insert into t1 values (3);
+set statement gtid_domain_id=4 for insert into t1 values (4);
+set statement gtid_domain_id=5 for insert into t1 values (5);
+set statement gtid_domain_id=5 for insert into t1 values (5);
+set statement gtid_domain_id=5 for insert into t1 values (5);
+drop table t1;
+
 --disable_session_track_info
 reset master;
 
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index f712acfd579..b784031e014 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -8107,7 +8107,8 @@ THD::signal_wakeup_ready()
 void THD::set_last_commit_gtid(rpl_gtid &gtid)
 {
 #ifndef EMBEDDED_LIBRARY
-  bool changed_gtid= (m_last_commit_gtid.seq_no != gtid.seq_no);
+  bool changed_gtid= (m_last_commit_gtid.domain_id != gtid.domain_id)
+      || (m_last_commit_gtid.seq_no != gtid.seq_no);
 #endif
   m_last_commit_gtid= gtid;
 #ifndef EMBEDDED_LIBRARY
