diff --git a/hercules_opt/src/fork_guard_elim.rs b/hercules_opt/src/fork_guard_elim.rs
index 052fd0e493327fceb3bd1b1918d4d4aafc93bf79..f6914b74a507a709c70187a2aa3367105d6c16e4 100644
--- a/hercules_opt/src/fork_guard_elim.rs
+++ b/hercules_opt/src/fork_guard_elim.rs
@@ -39,7 +39,6 @@ struct GuardedFork {
     guard_if: NodeID,
     fork_taken_proj: NodeID,
     fork_skipped_proj: NodeID,
-    guard_pred: NodeID,
     guard_join_region: NodeID,
     phi_reduce_map: HashMap<NodeID, NodeID>,
     factor: Factor, // The factor that matches the guard
@@ -302,7 +301,6 @@ fn guarded_fork(
         guard_if: if_node,
         fork_taken_proj: *control,
         fork_skipped_proj: other_pred,
-        guard_pred: if_pred,
         guard_join_region: join_control,
         phi_reduce_map: phi_nodes,
         factor,
@@ -323,13 +321,15 @@ pub fn fork_guard_elim(editor: &mut FunctionEditor, fork_join_map: &HashMap<Node
         join,
         fork_taken_proj,
         fork_skipped_proj,
-        guard_pred,
         phi_reduce_map,
         factor,
         guard_if,
         guard_join_region,
     } in guard_info
-    {
+    {   
+        let Some(guard_pred) = editor.get_uses(guard_if).next() else {
+            unreachable!()
+        };
         let new_fork_info = if let Factor::Max(idx, dc) = factor {
             let Node::Fork {
                 control: _,
diff --git a/juno_scheduler/src/pm.rs b/juno_scheduler/src/pm.rs
index db3904f71240996867fa1ee9f0321cca17160006..dd2ae73ac5342da0da5d78006e18e62993ed91ea 100644
--- a/juno_scheduler/src/pm.rs
+++ b/juno_scheduler/src/pm.rs
@@ -1895,7 +1895,6 @@ fn run_pass(
                 if !inner_changed {
                     break;
                 }
-                break;
             }
         }
         Pass::ForkCoalesce => {