diff --git a/Tests/Functional/Suite/MakeSimulations.cpp b/Tests/Functional/Suite/MakeSimulations.cpp
index 051c97c5163208c8b2d2c424d06728f41e863b67..9e3285b02c2467c6784f517883bc9134c446454d 100644
--- a/Tests/Functional/Suite/MakeSimulations.cpp
+++ b/Tests/Functional/Suite/MakeSimulations.cpp
@@ -390,10 +390,11 @@ test::makeSimulation::BasicYPolarizedSpecular(const MultiLayer& sample, const st
                                               bool vsQ)
 {
     const auto yCase = YPolarizationCases.at(polCase);
-    auto simulation = BasicSpecular(sample, vsQ);
-    simulation->setPolarization(yCase.first);
-    simulation->setAnalyzer(yCase.second, 1.0, 0.5);
-    return simulation;
+    std::unique_ptr<ISpecularScan> scan(BasicSpecularScan(vsQ));
+    scan->setPolarization(yCase.first);
+    auto result = std::make_unique<SpecularSimulation>(*scan, sample);
+    result->setAnalyzer(yCase.second, 1.0, 0.5);
+    return result;
 }
 
 std::unique_ptr<SpecularSimulation>