diff --git a/mavlink-core/src/connection/direct_serial.rs b/mavlink-core/src/connection/direct_serial.rs
index a3a33a0fa6a7d9f8e09c86f23a8c30a76594e3fe..2e31bda56d96c8a62211ea8fd6ea7f0c30f47824 100644
--- a/mavlink-core/src/connection/direct_serial.rs
+++ b/mavlink-core/src/connection/direct_serial.rs
@@ -77,6 +77,7 @@ impl<M: Message> MavConnection<M> for SerialConnection {
         let mut sequence = self.sequence.lock().unwrap();
 
         let header = MavHeader {
+            incompat_flags: 0,
             sequence: *sequence,
             system_id: header.system_id,
             component_id: header.component_id,
diff --git a/mavlink-core/src/connection/tcp.rs b/mavlink-core/src/connection/tcp.rs
index 35b7f09084cb4b7d260a4359fcf135d9eb72a8b1..73d456aa3b93d75c7fa51d622c72a931dbf38750 100644
--- a/mavlink-core/src/connection/tcp.rs
+++ b/mavlink-core/src/connection/tcp.rs
@@ -95,6 +95,7 @@ impl<M: Message> MavConnection<M> for TcpConnection {
         let mut lock = self.writer.lock().unwrap();
 
         let header = MavHeader {
+            incompat_flags: 0,
             sequence: lock.sequence,
             system_id: header.system_id,
             component_id: header.component_id,
diff --git a/mavlink-core/src/connection/udp.rs b/mavlink-core/src/connection/udp.rs
index 3ec739d3f5ecce19d5c2cd119f1722ea9dc7f1ce..91bbfaef45a69094d4aee72e3ccc62fbda3dc913 100644
--- a/mavlink-core/src/connection/udp.rs
+++ b/mavlink-core/src/connection/udp.rs
@@ -134,6 +134,7 @@ impl<M: Message> MavConnection<M> for UdpConnection {
         let state = &mut *guard;
 
         let header = MavHeader {
+            incompat_flags: 0,
             sequence: state.sequence,
             system_id: header.system_id,
             component_id: header.component_id,
diff --git a/mavlink-core/src/lib.rs b/mavlink-core/src/lib.rs
index e6e7aec97a20fcca7476b7d099a88b2551b5c62c..fa6bea9c482b9978e6cac0c36e0add5e80700218 100644
--- a/mavlink-core/src/lib.rs
+++ b/mavlink-core/src/lib.rs
@@ -93,6 +93,7 @@ pub trait MessageData: Sized {
 #[derive(Debug, Copy, Clone, PartialEq, Eq)]
 #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
 pub struct MavHeader {
+pub incompat_flags: u8,
     pub system_id: u8,
     pub component_id: u8,
     pub sequence: u8,
@@ -118,6 +119,7 @@ pub const MAV_STX_V2: u8 = 0xFD;
 impl Default for MavHeader {
     fn default() -> Self {
         Self {
+            incompat_flags: 0,
             system_id: 255,
             component_id: 0,
             sequence: 0,
@@ -211,6 +213,7 @@ impl<M: Message> MavFrame<M> {
         let system_id = buf.get_u8();
         let component_id = buf.get_u8();
         let header = MavHeader {
+            incompat_flags: 0,
             system_id,
             component_id,
             sequence,
@@ -639,7 +642,7 @@ impl MAVLinkV2MessageRaw {
         let header_buf = self.mut_header();
         header_buf.copy_from_slice(&[
             payload_length as u8,
-            0, //incompat_flags
+            header.incompat_flags,
             0, //compat_flags
             header.sequence,
             header.system_id,
diff --git a/mavlink/examples/embedded-async-read/src/main.rs b/mavlink/examples/embedded-async-read/src/main.rs
index 7f53335de3e15e44108646aa00ed6a3b47901f25..6b4e5c1dc17b044fe1d2ec9023af58e5474f2316 100644
--- a/mavlink/examples/embedded-async-read/src/main.rs
+++ b/mavlink/examples/embedded-async-read/src/main.rs
@@ -39,6 +39,7 @@ async fn main(spawner: Spawner) {
 
     // Create our mavlink header and heartbeat message
     let header = mavlink::MavHeader {
+        incompat_flags: 0,
         system_id: 1,
         component_id: 1,
         sequence: 42,
diff --git a/mavlink/examples/embedded/src/main.rs b/mavlink/examples/embedded/src/main.rs
index 4a71ca8fcfd7b1e45fa766fd368683808486bb70..21b70396b13225d1cad19921d3cdd0128b4581b5 100644
--- a/mavlink/examples/embedded/src/main.rs
+++ b/mavlink/examples/embedded/src/main.rs
@@ -82,6 +82,7 @@ fn main() -> ! {
 
 fn mavlink_header() -> mavlink::MavHeader {
     mavlink::MavHeader {
+        incompat_flags: 0,
         system_id: 1,
         component_id: 1,
         sequence: 42,
diff --git a/mavlink/tests/mav_frame_tests.rs b/mavlink/tests/mav_frame_tests.rs
index 1c225efd09d7148c439bace4ac09de7804a8d086..5472dbb8c12ce2ec463f493759b163f90c256946 100644
--- a/mavlink/tests/mav_frame_tests.rs
+++ b/mavlink/tests/mav_frame_tests.rs
@@ -96,6 +96,7 @@ mod mav_frame_tests {
     fn new(msg: MavMessage) -> MavFrame<MavMessage> {
         MavFrame {
             header: MavHeader {
+                incompat_flags: 0,
                 system_id: 1,
                 component_id: 2,
                 sequence: 84,
diff --git a/mavlink/tests/test_shared/mod.rs b/mavlink/tests/test_shared/mod.rs
index 4cba46907af9cd0cd438b048a428620eb65034b3..332e9a1f02326a75a3bf6bd0a07bfd42043d3e27 100644
--- a/mavlink/tests/test_shared/mod.rs
+++ b/mavlink/tests/test_shared/mod.rs
@@ -1,6 +1,7 @@
 #![allow(unused)]
 
 pub const COMMON_MSG_HEADER: mavlink::MavHeader = mavlink::MavHeader {
+    incompat_flags: 0,
     sequence: 239,
     system_id: 1,
     component_id: 2,