diff --git a/generators/patches/herwig3-7.2.3p2.patch b/generators/patches/herwig3-7.2.3p2.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a3ed0287b783aa70c87dabe74c4bee0583917fb4
--- /dev/null
+++ b/generators/patches/herwig3-7.2.3p2.patch
@@ -0,0 +1,43 @@
+--- src/defaults/decayers.in.in.orig	2022-05-05 21:25:32.199240396 +0200
++++ src/defaults/decayers.in.in	2022-05-05 21:26:17.782163779 +0200
+@@ -24505,4 +24505,4 @@
+ newdef RadiativeHyperon:Points 10000
+ newdef RadiativeHyperon:GenerateIntermediates 0 
+ 
+-read EvtGenDecayer.in
++@LOAD_EVTGEN_DECAYER@
+--- MatrixElement/Hadron/MEDiffraction.cc.orig	2023-04-24 09:48:23.105931153 +0200
++++ MatrixElement/Hadron/MEDiffraction.cc	2023-04-24 09:51:16.124964250 +0200
+@@ -829,16 +829,19 @@
+ DescribeClass<MEDiffraction,HwMEBase>
+ describeHerwigMEDiffraction("Herwig::MEDiffraction", "HwMEHadron.so");
+ 
++// Apply patch reqested by ATLAS in SPI-2332 and taken from:
++// https://phab.hepforge.org/rHERWIGHGa43dab86f2a5f4e956eda9b2bad451d6ed664460
++
+ void MEDiffraction::persistentOutput(PersistentOStream & os) const {
+   os << theme2 << deltaOnly << diffDirection << theprotonPomeronSlope
+      << thesoftPomeronIntercept << thesoftPomeronSlope << dissociationDecay
+-     << ounit(theProtonMass,GeV) << MPIHandler_;
++     << ounit(theProtonMass,GeV) << MPIHandler_ << singleDiffractionOnly;
+ }
+ 
+ void MEDiffraction::persistentInput(PersistentIStream & is, int) {
+   is >> theme2 >> deltaOnly >> diffDirection >> theprotonPomeronSlope
+      >> thesoftPomeronIntercept >> thesoftPomeronSlope >> dissociationDecay
+-     >> iunit(theProtonMass,GeV)>> MPIHandler_;
++     >> iunit(theProtonMass,GeV)>> MPIHandler_ << singleDiffractionOnly;
+ }
+ 
+ InvEnergy2 MEDiffraction::protonPomeronSlope() const{
+--- MatrixElement/Matchbox/Matching/ShowerApproximation.h.orig	2023-06-02 16:43:47.462555108 +0200
++++ MatrixElement/Matchbox/Matching/ShowerApproximation.h	2023-06-02 16:44:56.368269080 +0200
+@@ -144,7 +144,7 @@
+   /**
+    * Return true, if this matching is capable of spin correlations.
+    */
+-  virtual bool hasSpinCorrelations() const { return false; }
++  virtual bool hasSpinCorrelations() const { return true; }
+ 
+ public:
+