diff --git a/Processes/UrQMD/UrQMD.cc b/Processes/UrQMD/UrQMD.cc
index d847adad24768f8f7cc008045f2332f9da6e94f7..f46e7b61a79f5282f548973aa92494760e774018 100644
--- a/Processes/UrQMD/UrQMD.cc
+++ b/Processes/UrQMD/UrQMD.cc
@@ -289,9 +289,20 @@ corsika::process::EProcessReturn UrQMD::DoInteraction(SetupProjectile& vProjecti
   } else {
     inputs_.prspflg = 1;
     sys_.Ap = 1; // even for non-baryons this has to be set, see vanilla UrQMD.f
-    rsys_.bdist = nucrad_(targetA) + nucrad_(1) + 2 * options_.CTParam[30 - 1];
     rsys_.ebeam = (projectileEnergyLab - vProjectile.GetMass()) * (1 / 1_GeV);
 
+    switch (targetCode) {
+      case particles::Code::Nitrogen:
+      case particles::Code::Oxygen:
+        rsys_.bdist = 6;
+        break;
+      case particles::Code::Argon:
+        rsys_.bdist = 7;
+        break;
+      default:
+        rsys_.bdist = nucrad_(targetA) + nucrad_(1) + 2 * options_.CTParam[30 - 1];
+    }
+
     if (projectileCode == particles::Code::K0Long ||
         projectileCode == particles::Code::K0Short) {
       projectileCode = fBooleanDist(fRNG) ? particles::Code::K0 : particles::Code::K0Bar;