diff --git a/Core/Fitting/SimDataPair.cpp b/Core/Fitting/SimDataPair.cpp
index b64921bfb10f3da0e4d8419e4263825b81dc8120..e48f11a72b321d2d27bbefa0d95795dd471763cb 100644
--- a/Core/Fitting/SimDataPair.cpp
+++ b/Core/Fitting/SimDataPair.cpp
@@ -54,7 +54,8 @@ std::unique_ptr<ICoordSystem> createConverter(const ISimulation& simulation)
         return gisas->instrument().createScatteringCoords();
 
     if (auto spec = dynamic_cast<const SpecularSimulation*>(&simulation))
-        return {CoordSystem1D::createCoordSystem(*spec->dataHandler())};
+        return std::unique_ptr<ICoordSystem>(
+            CoordSystem1D::createCoordSystem(*spec->dataHandler()));
 
     if (auto probe = dynamic_cast<const DepthProbeSimulation*>(&simulation))
         return probe->createCoordSystem();
diff --git a/Core/Scan/CoordSystem1D.cpp b/Core/Scan/CoordSystem1D.cpp
index b7a2ec47487308d0c4e063f056718668b2882875..8f6615324669c1c628b1af444cbd5dafd499a03a 100644
--- a/Core/Scan/CoordSystem1D.cpp
+++ b/Core/Scan/CoordSystem1D.cpp
@@ -137,12 +137,11 @@ CoordSystem1D::createConvertedData(const OutputData<double>& data, Axes::Coords
 CoordSystem1D* CoordSystem1D::createCoordSystem(const ISpecularScan& scan)
 {
     if (const auto* aScan = dynamic_cast<const AngularSpecScan*>(&scan))
-        return std::make_unique<AngularReflectometryCoordinates>(aScan->wavelength(),
-                                                                 *aScan->coordinateAxis());
+        return new AngularReflectometryCoordinates(aScan->wavelength(),
+                                                   *aScan->coordinateAxis());
 
     if (const auto* qScan = dynamic_cast<const QSpecScan*>(&scan))
-        return std::make_unique<WavenumberReflectometryCoordinates>(
-            qScan->coordinateAxis()->clone());
+        return new WavenumberReflectometryCoordinates(qScan->coordinateAxis()->clone());
 
     throw std::runtime_error("Bug in CoordSystem1D::createCoordSystem: invalid case");
 }