diff --git a/Cargo.toml b/Cargo.toml
index 05f90ab0009674ab5910fb36ea8d26dd98a97c24..bf123dd00a06bc98088930357007e1341b3ccd2c 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -20,8 +20,7 @@ rtfm-core = { git = "https://github.com/japaric/rtfm-core" }
 cortex-m-rtfm-macros = { path = "macros" }
 
 [target.'cfg(target_arch = "x86_64")'.dev-dependencies]
-# compiletest_rs = "0.3.4"
-compiletest_rs = { git = "https://github.com/dwrensha/compiletest-rs", branch = "rustup" }
+compiletest_rs = "0.3.5"
 
 [dev-dependencies.cortex-m-rt]
 features = ["abort-on-panic"]
@@ -32,5 +31,8 @@ features = ["rt"]
 git = "https://github.com/japaric/stm32f103xx"
 # version = "0.8.0"
 
+[features]
+cm7-r0p1 = ["cortex-m/cm7-r0p1"]
+
 [profile.release]
 lto = true
diff --git a/ci/script.sh b/ci/script.sh
index af425da52f98b3aa50c08531fb78a1ffb46ec74d..222a1e02638bda51bd614f6b0f357b4346e6fa99 100644
--- a/ci/script.sh
+++ b/ci/script.sh
@@ -7,7 +7,14 @@ main() {
         return
     fi
 
-    xargo build --target $TARGET
+    case $TARGET in
+        thumbv7em-none-eabi*)
+            xargo check --target $TARGET --features cm7-r0p1
+            xargo check --target $TARGET --features cm7-r0p1 --examples
+        ;;
+    esac
+
+    xargo check --target $TARGET
     xargo check --target $TARGET --examples
 }
 
diff --git a/src/lib.rs b/src/lib.rs
index be670490e772042b95c39ca7abd062f860f842d9..986a7c9ad204cc189f4dcfc0b8add9dd76a91851 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -50,6 +50,11 @@
 //!
 //! [here]: https://docs.rs/cortex-m-rtfm-macros/0.2.0/cortex_m_rtfm_macros/fn.app.html
 //!
+//! # Important: Cortex-M7 devices
+//!
+//! If targeting a Cortex-M7 device with revision r0p1 then you MUST enable the `cm7-r0p1` Cargo
+//! feature of this crate or the `Resource.claim` and `Resource.claim_mut` methods WILL misbehave.
+//!
 //! # Examples
 //!
 //! In increasing grade of complexity. See the [examples](./examples/index.html)