diff --git a/Generators/EvgenProdTools/src/FixHepMC.cxx b/Generators/EvgenProdTools/src/FixHepMC.cxx
index e4f10e63ce24f5c5da176497160f32c3e50f4f10..19dafad38ff82e72a448f95089bb225e065f0445 100644
--- a/Generators/EvgenProdTools/src/FixHepMC.cxx
+++ b/Generators/EvgenProdTools/src/FixHepMC.cxx
@@ -45,11 +45,14 @@ StatusCode FixHepMC::execute() {
     }
 
     // Catch cases with more than 2 beam particles (16.11.2021)
-    auto beams_t = evt->beams();
+    std::vector<HepMC::GenParticlePtr> beams_t;
+    for (HepMC::GenParticlePtr p : evt->beams()) {
+      if (p->status() == 4)  beams_t.push_back(p);
+    }
     if (beams_t.size() > 2) {
       ATH_MSG_INFO("Invalid number of beam particles " <<  beams_t.size() << ". Will try to fix.");
       std::vector<HepMC::GenParticlePtr> bparttoremove;
-      for (auto bpart: beams_t) {
+      for (const auto& bpart : beams_t) {
         if (bpart->id() == 0 && bpart->production_vertex()) bparttoremove.push_back(bpart);
       }
       for (auto bpart: bparttoremove) {