diff --git a/Sim/Simulation/ScatteringSimulation.cpp b/Sim/Simulation/ScatteringSimulation.cpp
index 931c974f1b42eae30350e34ee7354aff2afe20a7..5d69bb22a1f0b7604d4fe000ca87fe1ad21c25b3 100644
--- a/Sim/Simulation/ScatteringSimulation.cpp
+++ b/Sim/Simulation/ScatteringSimulation.cpp
@@ -18,6 +18,7 @@
 #include "Base/Progress/ProgressHandler.h"
 #include "Base/Util/Assert.h"
 #include "Device/Beam/Beam.h"
+#include "Device/Beam/IFootprint.h"
 #include "Device/Coord/CoordSystem2D.h"
 #include "Device/Data/Datafield.h"
 #include "Device/Detector/IDetector.h"
@@ -90,6 +91,9 @@ void ScatteringSimulation::runComputation(const ReSample& re_sample, size_t i, d
 
     double intensity = Compute::scattered_and_reflected(re_sample, options(), ele);
 
+    if (const auto* footprint = beam().footprint())
+        intensity *= footprint->calculate(beam().alpha_i());
+
     double sin_alpha_i = std::abs(std::sin(ele.alphaI()));
     if (sin_alpha_i == 0.0) {
         intensity = 0;