diff --git a/juno_frontend/src/codegen.rs b/juno_frontend/src/codegen.rs
index ebc2bfb4a7f5143b2d926f06f248a2d9126b07e1..a76d47736fd01dc23135248fa0305dbcfc017e81 100644
--- a/juno_frontend/src/codegen.rs
+++ b/juno_frontend/src/codegen.rs
@@ -490,23 +490,27 @@ impl CodeGenerator<'_> {
                 }
 
                 // Create the call expression, a region specifically for it, and a region after that.
-                let mut call_region = self.builder.allocate_node(func_id);
-                let mut after_call_region = self.builder.allocate_node(func_id);
+                let mut call_region = ssa.create_block(&mut self.builder);
+                ssa.add_pred(call_region, block);
+                ssa.seal_block(call_region, &mut self.builder);
+
+                let mut after_call_region = ssa.create_block(&mut self.builder);
+                ssa.add_pred(after_call_region, call_region);
+                ssa.seal_block(after_call_region, &mut self.builder);
+
                 let mut call = self.builder.allocate_node(func_id);
                 let call_id = call.id();
-                call_region.build_region(Box::new([block]));
-                after_call_region.build_region(Box::new([call_region.id()]));
-                block = after_call_region.id();
+
                 call.build_call(
-                    call_region.id(),
+                    call_region,
                     call_func,
                     dynamic_constants.into(),
                     arg_vals.into(),
                 );
-                let _ = self.builder.add_node(call_region);
-                let _ = self.builder.add_node(after_call_region);
                 let _ = self.builder.add_node(call);
 
+                block = after_call_region;
+
                 // Read each of the "inout values" and perform the SSA update
                 let inouts_index = self.builder.create_field_index(1);
                 for (idx, var) in inouts.into_iter().enumerate() {
diff --git a/juno_frontend/src/main.rs b/juno_frontend/src/main.rs
index 72acd88d46b13dcedf1d4f0b409c5777cbb772a9..f291b8705b3212d3d5e3ecbdafffb03abe35bc01 100644
--- a/juno_frontend/src/main.rs
+++ b/juno_frontend/src/main.rs
@@ -61,9 +61,6 @@ fn main() {
             if args.verify || args.verify_all {
                 pm.add_pass(hercules_opt::pass::Pass::Verify);
             }
-            if args.x_dot {
-                pm.add_pass(hercules_opt::pass::Pass::Xdot(true));
-            }
             add_verified_pass!(pm, args, PhiElim);
             if args.x_dot {
                 pm.add_pass(hercules_opt::pass::Pass::Xdot(true));