diff --git a/src/plugins/rte/visit.ml b/src/plugins/rte/visit.ml
index f75e2ce715ce303c7e0a7d2460a7214e280bdd7e..a5e8ad38578f28365e4d918436372992d73386f9 100644
--- a/src/plugins/rte/visit.ml
+++ b/src/plugins/rte/visit.ml
@@ -108,8 +108,14 @@ class annot_visitor kf flags on_alarm = object (self)
 
   method private generate_assertion: 'a. 'a Rte.alarm_gen -> 'a -> unit =
     fun fgen ->
-      let stmt = Extlib.the (self#current_stmt) in
-      let on_alarm ~invalid a = on_alarm stmt ~invalid a in
+      let curr_stmt = self#current_stmt in
+      let on_alarm ~invalid a =
+        match curr_stmt with
+        | None -> Options.warning ~current:true
+                    "Alarm generated outside any statement:@ %a"
+                    Alarms.pretty a
+        | Some stmt -> on_alarm stmt ~invalid a
+      in
       fgen ~remove_trivial:flags.Flags.remove_trivial ~on_alarm
 
   (* Do not visit variable declarations, as no alarm should be emitted here,