diff --git a/src/kernel_services/ast_queries/cil.ml b/src/kernel_services/ast_queries/cil.ml
index ac3f9c469277b2c5d602ee12164b5fda9789b35a..892f3a46cbc482965317ac27d94cdc3e48d02bcf 100644
--- a/src/kernel_services/ast_queries/cil.ml
+++ b/src/kernel_services/ast_queries/cil.ml
@@ -3782,10 +3782,10 @@ and childrenExp (vis: cilVisitor) (e: exp) : exp =
        Cil_datatype.Varinfo.pretty nv
    end;
    f.svar <- nv; (* hit the function name *)
-   (* visit local declarations *)
-   f.slocals <- mapNoCopy (visitCilVarDecl vis) f.slocals;
    (* visit the formals *)
    let newformals = mapNoCopy (visitCilVarDecl vis) f.sformals in
+   (* visit local declarations *)
+   f.slocals <- mapNoCopy (visitCilVarDecl vis) f.slocals;
    (* Make sure the type reflects the formals *)
    let selection = State_selection.singleton FormalsDecl.self in
    if vis#behavior.is_copy_behavior || newformals != f.sformals then begin