diff --git a/src/kernel_services/ast_queries/file.ml b/src/kernel_services/ast_queries/file.ml
index 8d5ce416adc74c1837981b6b097af5aed429dc8f..c71b094486f17fc7bbd2bb146716097f51c9583e 100644
--- a/src/kernel_services/ast_queries/file.ml
+++ b/src/kernel_services/ast_queries/file.ml
@@ -1026,6 +1026,23 @@ let register_code_transformation_category s =
     after_id = Transform_after_cleanup.register_key s;
     prm_id = Transform_after_parameter_change.register_key s }
 
+module Cfg_recomputation_queue =
+  State_builder.Set_ref(Cil_datatype.Fundec.Set)
+    (struct
+      let name = "File.Cfg_recomputation_queue"
+      let dependencies = [Ast.self]
+    end)
+
+let () = Ast.add_linked_state Cfg_recomputation_queue.self
+
+let must_recompute_cfg f = Cfg_recomputation_queue.add f
+
+let recompute_cfg _ =
+  (* just in case f happens to modify the CFG *)
+  Cfg_recomputation_queue.iter
+    (fun f -> Cfg.clearCFGinfo ~clear_id:false f; Cfg.cfgFun f);
+  Cfg_recomputation_queue.clear ()
+
 let add_transform_parameter
     ~before ~after name f (p:(module Parameter_sig.S)) =
   let module P = (val p: Parameter_sig.S) in
@@ -1037,6 +1054,7 @@ let add_transform_parameter
         "applying %s to current AST, after option %s changed"
         name.name P.option_name;
       f (Ast.get());
+      recompute_cfg ();
       if Kernel.Check.get () then
         Filecheck.check_ast
           ("after code transformation: " ^ name.name ^
@@ -1058,23 +1076,6 @@ let add_transform_parameter
        Transform_after_parameter_change.add_dependency a.prm_id name.prm_id)
     after
 
-module Cfg_recomputation_queue =
-  State_builder.Set_ref(Cil_datatype.Fundec.Set)
-    (struct
-      let name = "File.Cfg_recomputation_queue"
-      let dependencies = [Ast.self]
-    end)
-
-let () = Ast.add_linked_state Cfg_recomputation_queue.self
-
-let must_recompute_cfg f = Cfg_recomputation_queue.add f
-
-let recompute_cfg _ =
-  (* just in case f happens to modify the CFG *)
-  Cfg_recomputation_queue.iter
-    (fun f -> Cfg.clearCFGinfo ~clear_id:false f; Cfg.cfgFun f);
-  Cfg_recomputation_queue.clear ()
-
 let transform_and_check name is_normalized f ast =
   let printer =
     if is_normalized then Printer.pp_file else Cil_printer.pp_file