diff --git a/tests/value/oracle/partitioning-interproc.0.res.oracle b/tests/value/oracle/partitioning-interproc.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..8fdc67327c5ac74097e56b742e91d5c2b6b7b381
--- /dev/null
+++ b/tests/value/oracle/partitioning-interproc.0.res.oracle
@@ -0,0 +1,72 @@
+[kernel] Parsing tests/value/partitioning-interproc.c (with preprocessing)
+[eva] Analyzing a complete application starting at cassign_test
+[eva] Computing initial state
+[eva] Initial state computed
+[eva:initial-state] Values of globals at initialization
+  
+[eva] computing for function cassign <- cassign_test.
+  Called from tests/value/partitioning-interproc.c:24.
+[eva] computing for function Frama_C_nondet <- cassign <- cassign_test.
+  Called from tests/value/partitioning-interproc.c:11.
+[eva] using specification for function Frama_C_nondet
+[eva] Done for function Frama_C_nondet
+[eva] Recording results for cassign
+[eva] Done for function cassign
+[eva:alarm] tests/value/partitioning-interproc.c:25: Warning: 
+  accessing uninitialized left-value. assert \initialized(&x);
+[eva] tests/value/partitioning-interproc.c:26: Frama_C_show_each: {1}
+[eva] computing for function cassign <- cassign_test.
+  Called from tests/value/partitioning-interproc.c:30.
+[eva] computing for function Frama_C_nondet <- cassign <- cassign_test.
+  Called from tests/value/partitioning-interproc.c:11.
+[eva] Done for function Frama_C_nondet
+[eva] Recording results for cassign
+[eva] Done for function cassign
+[eva] computing for function cassign <- cassign_test.
+  Called from tests/value/partitioning-interproc.c:30.
+[eva] computing for function Frama_C_nondet <- cassign <- cassign_test.
+  Called from tests/value/partitioning-interproc.c:11.
+[eva] Done for function Frama_C_nondet
+[eva] Recording results for cassign
+[eva] Done for function cassign
+[eva:alarm] tests/value/partitioning-interproc.c:31: Warning: 
+  accessing uninitialized left-value. assert \initialized(&x);
+[eva] tests/value/partitioning-interproc.c:32: Frama_C_show_each: {1}
+[eva] tests/value/partitioning-interproc.c:32: Frama_C_show_each: {1}
+[eva] Recording results for cassign_test
+[eva] done for function cassign_test
+[eva] ====== VALUES COMPUTED ======
+[eva:final-states] Values at end of function cassign:
+  Frama_C_entropy_source ∈ [--..--]
+  x ∈ {0} or UNINITIALIZED
+  __retres ∈ {0; 1}
+[eva:final-states] Values at end of function cassign_test:
+  Frama_C_entropy_source ∈ [--..--]
+  x ∈ {0} or UNINITIALIZED
+  y ∈ {1} or UNINITIALIZED
+[from] Computing for function cassign
+[from] Computing for function Frama_C_nondet <-cassign
+[from] Done for function Frama_C_nondet
+[from] Done for function cassign
+[from] Computing for function cassign_test
+[from] Done for function cassign_test
+[from] ====== DEPENDENCIES COMPUTED ======
+  These dependencies hold at termination for the executions that terminate:
+[from] Function Frama_C_nondet:
+  Frama_C_entropy_source FROM Frama_C_entropy_source (and SELF)
+  \result FROM Frama_C_entropy_source; a; b
+[from] Function cassign:
+  Frama_C_entropy_source FROM Frama_C_entropy_source (and SELF)
+  x FROM Frama_C_entropy_source; p (and SELF)
+  \result FROM Frama_C_entropy_source
+[from] Function cassign_test:
+  Frama_C_entropy_source FROM Frama_C_entropy_source (and SELF)
+[from] ====== END OF DEPENDENCIES ======
+[inout] Out (internal) for function cassign:
+    Frama_C_entropy_source; tmp; x; __retres
+[inout] Inputs for function cassign:
+    Frama_C_entropy_source
+[inout] Out (internal) for function cassign_test:
+    Frama_C_entropy_source; x; y; tmp; tmp_0
+[inout] Inputs for function cassign_test:
+    Frama_C_entropy_source
diff --git a/tests/value/oracle/partitioning-interproc.1.res.oracle b/tests/value/oracle/partitioning-interproc.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..a2bde102b390521d164ac45c3f46efd0e6c0d98e
--- /dev/null
+++ b/tests/value/oracle/partitioning-interproc.1.res.oracle
@@ -0,0 +1,36 @@
+[kernel] Parsing tests/value/partitioning-interproc.c (with preprocessing)
+[eva] Analyzing a complete application starting at fabs_test
+[eva] Computing initial state
+[eva] Initial state computed
+[eva:initial-state] Values of globals at initialization
+  
+[eva] computing for function fabs <- fabs_test.
+  Called from tests/value/partitioning-interproc.c:50.
+[eva] Recording results for fabs
+[eva] Done for function fabs
+[eva] Recording results for fabs_test
+[eva] done for function fabs_test
+[eva] ====== VALUES COMPUTED ======
+[eva:final-states] Values at end of function fabs:
+  __retres ∈ [-0. .. 1.79769313486e+308]
+[eva:final-states] Values at end of function fabs_test:
+  x ∈ [-1.79769313486e+308 .. 1.79769313486e+308]
+[from] Computing for function fabs
+[from] Done for function fabs
+[from] Computing for function fabs_test
+[from] Done for function fabs_test
+[from] ====== DEPENDENCIES COMPUTED ======
+  These dependencies hold at termination for the executions that terminate:
+[from] Function fabs:
+  \result FROM x
+[from] Function fabs_test:
+  NO EFFECTS
+[from] ====== END OF DEPENDENCIES ======
+[inout] Out (internal) for function fabs:
+    __retres
+[inout] Inputs for function fabs:
+    \nothing
+[inout] Out (internal) for function fabs_test:
+    x; tmp
+[inout] Inputs for function fabs_test:
+    \nothing
diff --git a/tests/value/oracle/partitioning-interproc.res.oracle b/tests/value/oracle/partitioning-interproc.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..b7f81ec5b367882ea010952fffc47aeae9e2d5c2
--- /dev/null
+++ b/tests/value/oracle/partitioning-interproc.res.oracle
@@ -0,0 +1,62 @@
+[kernel] Parsing tests/value/partitioning-interproc.c (with preprocessing)
+[eva] Analyzing a complete application starting at main
+[eva] Computing initial state
+[eva] Initial state computed
+[eva:initial-state] Values of globals at initialization
+  
+[eva] computing for function conditional_assign <- main.
+  Called from tests/value/partitioning-interproc.c:23.
+[eva] computing for function Frama_C_nondet <- conditional_assign <- main.
+  Called from tests/value/partitioning-interproc.c:10.
+[eva] using specification for function Frama_C_nondet
+[eva] Done for function Frama_C_nondet
+[eva] Recording results for conditional_assign
+[eva] Done for function conditional_assign
+[eva] tests/value/partitioning-interproc.c:25: Frama_C_show_each: {1}
+[eva] tests/value/partitioning-interproc.c:29: 
+  Reusing old results for call to conditional_assign
+[eva] computing for function conditional_assign <- main.
+  Called from tests/value/partitioning-interproc.c:29.
+[eva] computing for function Frama_C_nondet <- conditional_assign <- main.
+  Called from tests/value/partitioning-interproc.c:10.
+[eva] Done for function Frama_C_nondet
+[eva] Recording results for conditional_assign
+[eva] Done for function conditional_assign
+[eva] tests/value/partitioning-interproc.c:31: Frama_C_show_each: {1}
+[eva] Recording results for main
+[eva] done for function main
+[eva] ====== VALUES COMPUTED ======
+[eva:final-states] Values at end of function conditional_assign:
+  Frama_C_entropy_source ∈ [--..--]
+  x ∈ {0} or UNINITIALIZED
+  __retres ∈ {0; 1}
+[eva:final-states] Values at end of function main:
+  Frama_C_entropy_source ∈ [--..--]
+  x ∈ {0} or UNINITIALIZED
+  y ∈ {1} or UNINITIALIZED
+[from] Computing for function conditional_assign
+[from] Computing for function Frama_C_nondet <-conditional_assign
+[from] Done for function Frama_C_nondet
+[from] Done for function conditional_assign
+[from] Computing for function main
+[from] Done for function main
+[from] ====== DEPENDENCIES COMPUTED ======
+  These dependencies hold at termination for the executions that terminate:
+[from] Function Frama_C_nondet:
+  Frama_C_entropy_source FROM Frama_C_entropy_source (and SELF)
+  \result FROM Frama_C_entropy_source; a; b
+[from] Function conditional_assign:
+  Frama_C_entropy_source FROM Frama_C_entropy_source (and SELF)
+  x FROM Frama_C_entropy_source; p (and SELF)
+  \result FROM Frama_C_entropy_source
+[from] Function main:
+  Frama_C_entropy_source FROM Frama_C_entropy_source (and SELF)
+[from] ====== END OF DEPENDENCIES ======
+[inout] Out (internal) for function conditional_assign:
+    Frama_C_entropy_source; tmp; x; __retres
+[inout] Inputs for function conditional_assign:
+    Frama_C_entropy_source
+[inout] Out (internal) for function main:
+    Frama_C_entropy_source; x; y; tmp; tmp_0
+[inout] Inputs for function main:
+    Frama_C_entropy_source
diff --git a/tests/value/partitioning-interproc.c b/tests/value/partitioning-interproc.c
new file mode 100644
index 0000000000000000000000000000000000000000..034c52230343ff921c56b199abaf0ebde8494b79
--- /dev/null
+++ b/tests/value/partitioning-interproc.c
@@ -0,0 +1,53 @@
+/* run.config*
+   GCC:
+   STDOPT: #"-main cassign_test -eva-partition-history 1"
+   STDOPT: #"-main fabs_test -eva-partition-history 1 -eva-equality-domain"
+   */
+
+#include "__fc_builtin.h"
+
+int cassign(int *p)
+{
+  if (Frama_C_nondet(0,1))
+  {
+    *p = 0;
+    return 1;
+  }
+
+  return 0;
+}
+
+void cassign_test(void) {
+  int x, y;
+
+  // First call
+  if (cassign(&x)) {
+    y = x + 1;
+    Frama_C_show_each(y);
+  }
+
+  // Second call with some MemExec hit
+  if (cassign(&x)) {
+    y = x + 1;
+    Frama_C_show_each(y);
+  }
+}
+
+
+double fabs(double x)
+{
+  if (x == 0.0) {
+    return 0.0;
+  } else if (x > 0.0) {
+    return x;
+  } else {
+    return -x;
+  } 
+}
+
+void fabs_test(double x)
+{
+  if (fabs(x) > 1.0) {
+    x = x < 0 ? -1.0 : 1.0;
+  }
+}