diff --git a/Core/Beam/Beam.cpp b/Core/Beam/Beam.cpp
index 1aa5d416c3f000dc1e02972adaab0369fb553fd8..1fd821b77177f6ab45271969b8c745a26d386461 100644
--- a/Core/Beam/Beam.cpp
+++ b/Core/Beam/Beam.cpp
@@ -20,6 +20,9 @@
 #include "RealParameter.h"
 #include "MathConstants.h"
 
+// Allow for 90 degrees by adding a relatively small constant to pi/2
+static constexpr double INCLINATION_LIMIT = M_PI_2 + 1e-10;
+
 Beam::Beam()
     : m_wavelength(1.0), m_alpha(0.0), m_phi(0.0)
     , m_intensity(1.0)
@@ -131,7 +134,7 @@ void Beam::init_parameters()
     registerParameter(BornAgain::Wavelength, &m_wavelength).setUnit(BornAgain::UnitsNm)
         .setNonnegative();
     registerParameter(BornAgain::Inclination, &m_alpha).setUnit(BornAgain::UnitsRad)
-        .setLimited(0, M_PI_2);
+        .setLimited(0, INCLINATION_LIMIT);
     registerParameter(BornAgain::Azimuth, &m_phi).setUnit(BornAgain::UnitsRad)
         .setLimited(-M_PI_2, M_PI_2);
     registerVector(BornAgain::BlochVector, &m_bloch_vector, BornAgain::UnitsNone);