diff --git a/GUI/Model/ToCore/SampleToCore.cpp b/GUI/Model/ToCore/SampleToCore.cpp
index 445ed9ae71a3bcd337652f560f8462211e03ecdc..a636d2d174eaa9e5e9eedf1976e8008a853be65c 100644
--- a/GUI/Model/ToCore/SampleToCore.cpp
+++ b/GUI/Model/ToCore/SampleToCore.cpp
@@ -115,18 +115,23 @@ std::unique_ptr<MultiLayer> GUI::ToCore::itemToSample(const SampleItem& sampleIt
         auto layer = buildLayer(*layerItem);
         ASSERT(layer);
 
-        if (layerItem->isTopLayer())
-            sample->addLayer(*layer);
-        else if (const auto* t = dynamic_cast<const BasicRoughnessItem*>(
-                     layerItem->roughnessSelection().certainItem())) {
-
-            BasicAutoCorr autoCorr(t->sigma().dVal(), t->hurst().dVal(),
-                                   t->lateralCorrelationLength().dVal());
-            LayerRoughness roughness(&autoCorr,
-                                     t->certainInterlayerModel()->createModel().release());
-            sample->addLayerWithTopRoughness(*layer, roughness);
-        } else
+        if (layerItem->isTopLayer()) {
             sample->addLayer(*layer);
+            continue;
+        }
+        std::unique_ptr<AutoCorrModel> autoCorr;
+        std::unique_ptr<InterlayerModel> interlayer;
+        const RoughnessItem* roughItem = layerItem->certainRoughness();
+
+        if (roughItem)
+            interlayer = roughItem->certainInterlayerModel()->createModel();
+
+        if (const auto* br = dynamic_cast<const BasicRoughnessItem*>(roughItem))
+            autoCorr = std::make_unique<BasicAutoCorr>(br->sigma().dVal(), br->hurst().dVal(),
+                                                       br->lateralCorrelationLength().dVal());
+
+        LayerRoughness roughness(autoCorr.get(), interlayer.get());
+        sample->addLayerWithTopRoughness(*layer, roughness);
     }
     return sample;
 }
diff --git a/GUI/View/Realspace/RealspaceBuilder.cpp b/GUI/View/Realspace/RealspaceBuilder.cpp
index e83e609cc45044b50b68c2f792d9ab1851c73e16..e97071cfe9a03915d16a42916ae621ffeaf505c3 100644
--- a/GUI/View/Realspace/RealspaceBuilder.cpp
+++ b/GUI/View/Realspace/RealspaceBuilder.cpp
@@ -96,11 +96,12 @@ std::unique_ptr<const double2d_t> layerRoughnessMap(const LayerItem& layerItem,
     std::unique_ptr<const double2d_t> result;
     std::unique_ptr<AutoCorrModel> autoCorr;
     std::unique_ptr<InterlayerModel> interlayer;
+    const RoughnessItem* roughItem = layerItem.certainRoughness();
 
-    if (const RoughnessItem* r = layerItem.certainRoughness())
-        interlayer = r->certainInterlayerModel()->createModel();
+    if (roughItem)
+        interlayer = roughItem->certainInterlayerModel()->createModel();
 
-    if (const auto* br = dynamic_cast<const BasicRoughnessItem*>(layerItem.certainRoughness()))
+    if (const auto* br = dynamic_cast<const BasicRoughnessItem*>(roughItem))
         autoCorr = std::make_unique<BasicAutoCorr>(br->sigma().dVal(), br->hurst().dVal(),
                                                    br->lateralCorrelationLength().dVal());