diff --git a/Cargo.toml b/Cargo.toml
index 05f90ab0009674ab5910fb36ea8d26dd98a97c24..e506be02b651f549876a4b1185b38a35e91f7c94 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -13,7 +13,7 @@ repository = "https://github.com/japaric/cortex-m-rtfm"
 version = "0.3.0"
 
 [dependencies]
-cortex-m = { git = "https://github.com/japaric/cortex-m" }
+cortex-m = { git = "https://github.com/japaric/cortex-m", branch = "cm7-r0p1" }
 untagged-option = "0.1.1"
 # rtfm-core = "0.2.0"
 rtfm-core = { git = "https://github.com/japaric/rtfm-core" }
@@ -32,5 +32,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)