diff --git a/Cargo.lock b/Cargo.lock
index b34e773..2f19870 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -51,7 +51,7 @@ dependencies = [
[[package]]
name = "kinavis-ais"
-version = "0.1.0"
+version = "0.1.1"
dependencies = [
"kinavis-kernel",
"kinavis-nmea0183",
@@ -93,7 +93,7 @@ dependencies = [
[[package]]
name = "kinavis-kernel"
-version = "1.0.0"
+version = "1.0.1"
dependencies = [
"libm",
"proptest",
@@ -103,7 +103,7 @@ dependencies = [
[[package]]
name = "kinavis-nmea0183"
-version = "0.1.0"
+version = "0.1.1"
dependencies = [
"kinavis-kernel",
"proptest",
diff --git a/Cargo.toml b/Cargo.toml
index f220ed5..eaa6b64 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -24,7 +24,7 @@ license = "MIT OR Apache-2.0"
# Workspace crates, so members reference siblings with the workspace version.
kinavis-kernel = { version = "1.0.0", path = "crates/kinavis-kernel", default-features = false }
kinavis = { version = "1.0.0", path = "crates/kinavis", default-features = false }
-kinavis-nmea0183 = { version = "0.1.0", path = "crates/kinavis-nmea0183", default-features = false }
+kinavis-nmea0183 = { version = "0.1.1", path = "crates/kinavis-nmea0183", default-features = false }
libm = { version = "0.2", default-features = false }
serde = { version = "1", default-features = false, features = [
diff --git a/crates/kinavis-ais/Cargo.toml b/crates/kinavis-ais/Cargo.toml
index 3c66113..cbe53a2 100644
--- a/crates/kinavis-ais/Cargo.toml
+++ b/crates/kinavis-ais/Cargo.toml
@@ -6,7 +6,7 @@ readme = "README.md"
keywords = ["ais", "aivdm", "nmea", "marine", "no-std"]
categories = ["parser-implementations", "science", "no-std::no-alloc"]
# Satellite crate, versioned independently of the kernel.
-version = "0.1.0"
+version = "0.1.1"
authors.workspace = true
edition.workspace = true
rust-version.workspace = true
diff --git a/crates/kinavis-ais/src/fields.rs b/crates/kinavis-ais/src/fields.rs
index ffdde4c..ede3bdc 100644
--- a/crates/kinavis-ais/src/fields.rs
+++ b/crates/kinavis-ais/src/fields.rs
@@ -14,7 +14,8 @@ const NO_SPEED: u32 = 1023;
const NO_LONGITUDE: i32 = 181 * 600_000;
const NO_LATITUDE: i32 = 91 * 600_000;
const NO_COURSE: u32 = 3600;
-const NO_HEADING: u32 = 511;
+/// 511, and the unused 360 to 510.
+const NOT_A_HEADING: u32 = 360;
/// Message of at least `needed` bits, so fields are read without per-field
/// length checks.
@@ -111,8 +112,10 @@ pub(crate) fn course(field: u32) -> Result