diff --git a/ivette/src/frama-c/plugins/eva/layout.ts b/ivette/src/frama-c/plugins/eva/layout.ts
index 732060b775c3feefd2c63eb84a560882e08fc274..166cdb880a1865837d9a6817238e45440f77f025 100644
--- a/ivette/src/frama-c/plugins/eva/layout.ts
+++ b/ivette/src/frama-c/plugins/eva/layout.ts
@@ -87,7 +87,7 @@ export class LayoutEngine {
 
   // --- Probe Buffer
   private byFct?: string; // current function
-  private byStk?: boolean; // callstack probes
+  private byStk = new Map<string, boolean>(); // callstack probes
   private skip?: boolean; // skip current function
   private rowSize: Size = EMPTY;
   private buffer: Probe[] = [];
@@ -104,7 +104,7 @@ export class LayoutEngine {
     };
   }
 
-  layout(ps: Probe[], byCallstacks: boolean): Row[] {
+  layout(ps: Probe[], byCallstacks: Map<string, boolean>): Row[] {
     this.chained = undefined;
     this.byStk = byCallstacks;
     ps.sort(LayoutEngine.order).forEach(this.push);
@@ -171,7 +171,7 @@ export class LayoutEngine {
     const rs = this.rows;
     const fct = this.byFct;
     if (fct && ps.length > 0) {
-      const stk = this.byStk;
+      const stk = this.byStk.get(fct);
       const hlines = this.rowSize.rows;
       if (stk) {
         // --- by callstacks
diff --git a/ivette/src/frama-c/plugins/eva/model.ts b/ivette/src/frama-c/plugins/eva/model.ts
index dfc39fb2693eac88759d3add18ea5f220d82ccb2..a267c0e5de47e856a8883c7f862055cee11ea1dc 100644
--- a/ivette/src/frama-c/plugins/eva/model.ts
+++ b/ivette/src/frama-c/plugins/eva/model.ts
@@ -72,7 +72,7 @@ export class Model implements ModelCallbacks {
   private remanent?: Probe; // last transient
   private probes = new Map<string, Probe>();
   private folded = new Map<string, boolean>(); // folded functions
-  private byCallstacks = false;
+  private byCallstacks = new Map<string, boolean>();
 
   getFocused() { return this.focused; }
   isFocused(p: Probe | undefined) { return this.focused === p; }
@@ -114,12 +114,12 @@ export class Model implements ModelCallbacks {
     this.forceLayout();
   }
 
-  getByCallstacks(): boolean {
-    return this.byCallstacks;
+  isByCallstacks(fct: string): boolean {
+    return this.byCallstacks.get(fct) ?? false;
   }
 
-  setByCallstacks(b: boolean) {
-    this.byCallstacks = b;
+  setByCallstacks(fct: string, b: boolean) {
+    this.byCallstacks.set(fct, b);
     this.forceLayout();
   }
 
diff --git a/ivette/src/frama-c/plugins/eva/probeinfos.tsx b/ivette/src/frama-c/plugins/eva/probeinfos.tsx
index 87e1ee07b318a72b3718b1dbdb1773aea89eb3f4..230afeac91df9e0fa8963b7a54fa0361e0c79fbd 100644
--- a/ivette/src/frama-c/plugins/eva/probeinfos.tsx
+++ b/ivette/src/frama-c/plugins/eva/probeinfos.tsx
@@ -109,7 +109,7 @@ export function ProbeInfos() {
   const model = useModel();
   const probe = model.getFocused();
   const fct = probe?.fct;
-  const byCS = model.getByCallstacks();
+  const byCS = fct ? model.isByCallstacks(fct) : false;
   const effects = probe ? probe.effects : false;
   const condition = probe ? probe.condition : false;
   const summary = fct ? model.stacks.getSummary(fct) : false;
diff --git a/ivette/src/frama-c/plugins/eva/valuetable.tsx b/ivette/src/frama-c/plugins/eva/valuetable.tsx
index 170ffed58be8267e9209373cecae7b99d95ac592..60fedb9b5aa1149b47663d393b0f6f2af46867a2 100644
--- a/ivette/src/frama-c/plugins/eva/valuetable.tsx
+++ b/ivette/src/frama-c/plugins/eva/valuetable.tsx
@@ -288,7 +288,7 @@ function TableRow(props: TableRowProps) {
     if (!fct) return null;
     const folded = model.isFolded(fct);
     const foldable = model.isFoldable(fct);
-    const byCallstacks = model.getByCallstacks();
+    const byCallstacks = model.isByCallstacks(fct);
     return (
       <Hpack className="eva-function" style={props.style}>
         <TableSection
@@ -297,7 +297,7 @@ function TableRow(props: TableRowProps) {
           foldable={foldable}
           onClick={() => model.setFolded(fct, !folded)}
           byCallstacks = {byCallstacks}
-          onCallstackClick = {() => model.setByCallstacks(!byCallstacks)}
+          onCallstackClick = {() => model.setByCallstacks(fct, !byCallstacks)}
         />
       </Hpack>
     );