diff --git a/Examples/python/simulation/ex06_Reflectometry/BeamFullDivergence_copy.py b/Examples/python/simulation/ex06_Reflectometry/BeamFullDivergence_copy.py
new file mode 100644
index 0000000000000000000000000000000000000000..af8e98d6f6e6f593ef9418819e07bfb8a087a9c0
--- /dev/null
+++ b/Examples/python/simulation/ex06_Reflectometry/BeamFullDivergence_copy.py
@@ -0,0 +1,84 @@
+"""
+An example of taking into account beam angular and wavelength
+divergence in reflectometry calculations with BornAgain.
+
+"""
+import bornagain as ba
+
+# input parameters
+wavelength = 1.54 * ba.angstrom
+alpha_i_min = 0.0 * ba.deg  # min incident angle, deg
+alpha_i_max = 2.0 * ba.deg  # max incident angle, rad
+
+# convolution parameters
+d_wl = 0.01 * wavelength  # spread width for wavelength
+d_ang = 0.01 * ba.deg  # spread width for incident angle
+n_sig = 3  # number of sigmas to convolve over
+n_points = 25  # number of points to convolve over
+
+# substrate (Si)
+si_sld_real = 2.0704e-06  # \AA^{-2}
+# layer parameters
+n_repetitions = 10
+# Ni
+ni_sld_real = 9.4245e-06  # \AA^{-2}
+d_ni = 70 * ba.angstrom  # ni layer thickness (nm)
+# Ti
+ti_sld_real = -1.9493e-06  # \AA^{-2}
+d_ti = 30 * ba.angstrom  # ti layer thickness (nm)
+
+
+def get_sample():
+    # defining materials
+    # this example implies beam divergence in the wavelength,
+    # thus MaterialBySLD must be used to provide correct result
+    m_air = ba.MaterialBySLD("Air", 0.0, 0.0)
+    m_ni = ba.MaterialBySLD("Ni", ni_sld_real, 0.0)
+    m_ti = ba.MaterialBySLD("Ti", ti_sld_real, 0.0)
+    m_substrate = ba.MaterialBySLD("SiSubstrate", si_sld_real, 0.0)
+
+    air_layer = ba.Layer(m_air)
+    ni_layer = ba.Layer(m_ni, d_ni)
+    ti_layer = ba.Layer(m_ti, d_ti)
+    substrate_layer = ba.Layer(m_substrate)
+    multi_layer = ba.MultiLayer()
+    multi_layer.addLayer(air_layer)
+    for i in range(n_repetitions):
+        multi_layer.addLayer(ti_layer)
+        multi_layer.addLayer(ni_layer)
+    multi_layer.addLayer(substrate_layer)
+    return multi_layer
+
+
+def get_simulation(scan_size=500):
+    """
+    Returns a specular simulation with beam and detector defined.
+    """
+
+    alpha_distr = ba.RangedDistributionGaussian(n_points, n_sig)
+    wavelength_distr = ba.RangedDistributionGaussian(n_points, n_sig)
+
+    scan = ba.AngularSpecScan(wavelength, scan_size, alpha_i_min, alpha_i_max)
+    scan.setAbsoluteAngularResolution(alpha_distr, d_ang)
+    scan.setAbsoluteWavelengthResolution(wavelength_distr, d_wl)
+
+    simulation = ba.SpecularSimulation()
+    simulation.setScan(scan)
+
+    return simulation
+
+
+def run_simulation():
+    """
+    Runs simulation and returns it.
+    """
+    sample = get_sample()
+    simulation = get_simulation()
+    simulation.setSample(sample)
+    simulation.runSimulation()
+    return simulation.result()
+
+
+if __name__ == '__main__':
+    results = run_simulation()
+    ba.plot_simulation_result(results)
diff --git a/Tests/Functional/Python/PyPersistence/CMakeLists.txt b/Tests/Functional/Python/PyPersistence/CMakeLists.txt
index ffc415036fab704b7acbb793115a31ed77d6aaf0..22a82782c845a93f4981b9dd95b172b9fbb45a7f 100644
--- a/Tests/Functional/Python/PyPersistence/CMakeLists.txt
+++ b/Tests/Functional/Python/PyPersistence/CMakeLists.txt
@@ -60,6 +60,7 @@ test_example("simulation/ex06_Reflectometry/BasicSpecularSimulation" 2e-10)
 test_example("simulation/ex06_Reflectometry/BeamAngularDivergence" 2e-10)
 test_example("simulation/ex06_Reflectometry/BeamAngularDivergence_copy" 2e-10)
 test_example("simulation/ex06_Reflectometry/BeamFullDivergence" 2e-10)
+test_example("simulation/ex06_Reflectometry/BeamFullDivergence_copy" 2e-10)
 test_example("simulation/ex06_Reflectometry/TimeOfFlightReflectometry" 2e-10)
 
 test_example("simulation/ex07_Miscellaneous/CylindersInAverageLayer" 2e-10)
diff --git a/Tests/ReferenceData/Python/BeamFullDivergence_copy.int.gz b/Tests/ReferenceData/Python/BeamFullDivergence_copy.int.gz
new file mode 100644
index 0000000000000000000000000000000000000000..a74c173951d56d27c2338eb83650bbf843050dd7
Binary files /dev/null and b/Tests/ReferenceData/Python/BeamFullDivergence_copy.int.gz differ