diff --git a/i2c2-target/src/lib.rs b/i2c2-target/src/lib.rs
index bf15608c5f34093ef496303b13019d6e0cbad32b..e89608ccb4b3c1bddfe9fbf3f00f47a727bb6af3 100644
--- a/i2c2-target/src/lib.rs
+++ b/i2c2-target/src/lib.rs
@@ -201,6 +201,10 @@ unsafe fn I2C2_EV() {
                     sr1.0
                 );
             }
+            if sr1.berr() {
+                defmt::trace!("clearing BERR");
+                pac::I2C2.sr1().modify(|w| w.set_berr(false));
+            }
             break;
         }
         if sr1.ovr() {