diff --git a/src/kernel_services/ast_building/cil_builder.ml b/src/kernel_services/ast_building/cil_builder.ml
index 33cdf27fa52975cec455a8c5321bfc2661556adc..b63d6fe76c676ce5afbcd1cec422100e771afedf 100644
--- a/src/kernel_services/ast_building/cil_builder.ml
+++ b/src/kernel_services/ast_building/cil_builder.ml
@@ -1132,7 +1132,7 @@ struct
     reset_owner ();
     match !stack with
     | [] -> raise (WrongContext "not in an opened context")
-    | [b] -> b
+    | [b] -> stack := []; b
     | _ :: _ :: _ -> raise (WrongContext "all contextes have not been closed")
 
   let append_stmt b s =