diff --git a/juno_samples/edge_detection/src/cpu.sch b/juno_samples/edge_detection/src/cpu.sch
index a1974d0592f44938dc7d7d98305c57ecdeb48577..6f1ee14baf656e326d0951cfbfdf44bc1aaccee4 100644
--- a/juno_samples/edge_detection/src/cpu.sch
+++ b/juno_samples/edge_detection/src/cpu.sch
@@ -45,7 +45,8 @@ fork-tile[4, 1, false, false](par);
 fork-tile[4, 0, false, false](par);
 fork-interchange[1, 2](par);
 let split = fork-split(par);
-let laplacian_estimate_body = outline(split._1_laplacian_estimate.fj2);
+let body = split._1_laplacian_estimate.fj2 | laplacian_estimate.shr1 | laplacian_estimate.shr2;
+let laplacian_estimate_body = outline(body);
 fork-coalesce(laplacian_estimate, laplacian_estimate_body);
 simpl!(laplacian_estimate, laplacian_estimate_body);
 
@@ -61,7 +62,8 @@ fork-tile[4, 1, false, false](par);
 fork-tile[4, 0, false, false](par);
 fork-interchange[1, 2](par);
 let split = fork-split(par);
-let zero_crossings_body = outline(split._2_zero_crossings.fj2);
+let body = split._2_zero_crossings.fj2 | zero_crossings.shr1 | zero_crossings.shr2;
+let zero_crossings_body = outline(body);
 fork-coalesce(zero_crossings, zero_crossings_body);
 simpl!(zero_crossings, zero_crossings_body);