diff --git a/src/components/main/constellation.rs b/src/components/main/constellation.rs index a86b2453844..20768b2d3a8 100644 --- a/src/components/main/constellation.rs +++ b/src/components/main/constellation.rs @@ -636,7 +636,13 @@ impl Constellation { Some(constellation_msg::Load) => { let evicted = self.navigation_context.navigate(frame_tree); for evicted.iter().advance |frame_tree| { - frame_tree.pipeline.exit(); + // exit any pipelines that don't exist outside the evicted frame trees + for frame_tree.iter().advance |frame| { + if self.navigation_context.find(frame.pipeline.id).is_none() { + frame_tree.pipeline.exit(); + self.pipelines.remove(&frame_tree.pipeline.id); + } + } } } _ => {}