diff --git a/GUI/coregui/Models/DetectorItems.cpp b/GUI/coregui/Models/DetectorItems.cpp
index 84ed2d15b76f62b35aa2d69e6288817f0cd32e3b..6f9985078ecceea026a01ac3245d421dfbdf3f2e 100644
--- a/GUI/coregui/Models/DetectorItems.cpp
+++ b/GUI/coregui/Models/DetectorItems.cpp
@@ -31,7 +31,7 @@ DetectorItem::DetectorItem(ParameterizedItem *parent)
     addToValidChildren(Constants::MaskContainerType);
 }
 
-MaskContainerItem *DetectorItem::getMaskContainerItem()
+MaskContainerItem *DetectorItem::getMaskContainerItem() const
 {
     foreach(ParameterizedItem *item, childItems()) {
         if(MaskContainerItem *container = dynamic_cast<MaskContainerItem *>(item)) {
diff --git a/GUI/coregui/Models/DetectorItems.h b/GUI/coregui/Models/DetectorItems.h
index 69ba85d25ee18a719aa8857bbcb527d616c0f705..a118b5ff955e41edcc1871519398f2cf33aa1cd4 100644
--- a/GUI/coregui/Models/DetectorItems.h
+++ b/GUI/coregui/Models/DetectorItems.h
@@ -28,7 +28,7 @@ public:
     explicit DetectorItem(ParameterizedItem *parent=0);
     ~DetectorItem(){}
 
-    MaskContainerItem *getMaskContainerItem();
+    MaskContainerItem *getMaskContainerItem() const;
 };
 
 class PhiAlphaDetectorItem : public ParameterizedItem
diff --git a/GUI/coregui/Models/DomainSimulationBuilder.cpp b/GUI/coregui/Models/DomainSimulationBuilder.cpp
index 8cc55919ae51ca2d804f0b75a506ad9aca6a39e4..3fda5c25c3f2b433824072f1ab4438fe4e10e01f 100644
--- a/GUI/coregui/Models/DomainSimulationBuilder.cpp
+++ b/GUI/coregui/Models/DomainSimulationBuilder.cpp
@@ -21,6 +21,7 @@
 #include "MultiLayer.h"
 #include "MultiLayerItem.h"
 #include "BeamItem.h"
+#include "DetectorItems.h"
 #include "DomainObjectBuilder.h"
 #include "TransformToDomain.h"
 #include "GUIHelpers.h"
@@ -69,5 +70,8 @@ GISASSimulation *DomainSimulationBuilder::getSimulation(MultiLayerItem *sampleIt
 
     TransformToDomain::addDistributionParametersToSimulation(*instrumentItem->getBeamItem(),
                                                              result);
+
+    TransformToDomain::addMasksToSimulation(*instrumentItem->getDetectorItem(),
+                                            result);
     return result;
 }
diff --git a/GUI/coregui/Models/TransformToDomain.cpp b/GUI/coregui/Models/TransformToDomain.cpp
index 0ba5565ba2f719c968d58b6954c4ac2e568ec136..693d071af19c4d855afb28dc1cc38175e9c7a068 100644
--- a/GUI/coregui/Models/TransformToDomain.cpp
+++ b/GUI/coregui/Models/TransformToDomain.cpp
@@ -383,13 +383,33 @@ void TransformToDomain::addMasksToSimulation(const ParameterizedItem &detector_i
 {
     Q_ASSERT(detector_item.modelType() == Constants::DetectorType);
 
-//    if(const DetectorItem *detectorItem = dynamic_cast<const DetectorItem *>(&detector_item)) {
-//        if(auto maskContainerItem = detectorItem->getMaskContainerItem()) {
-//            foreach(auto child, maskContainerItem->childItems()) {
+    if(auto detectorItem = dynamic_cast<const DetectorItem *>(&detector_item)) {
+        if(auto maskContainerItem = detectorItem->getMaskContainerItem()) {
+            for(int i_row = maskContainerItem->childItems().size(); i_row>0; --i_row) {
+                if(auto maskItem = dynamic_cast<MaskItem *>(maskContainerItem->childItems().at(i_row-1))) {
+                    std::unique_ptr<Geometry::IShape2D > shape(maskItem->createShape());
+                    bool mask_value = maskItem->getRegisteredProperty(MaskItem::P_MASK_VALUE).toBool();
+                    simulation->addMask(*shape, mask_value);
+                }
+            }
 
+        }
+    }
+
+}
 
-//            }
+
+//for (int i_row = m_maskModel->rowCount(m_maskContainerIndex); i_row > 0; --i_row) {
+//    QModelIndex itemIndex = m_maskModel->index(i_row - 1, 0, m_maskContainerIndex);
+//    if (MaskItem *item = dynamic_cast<MaskItem *>(m_maskModel->itemForIndex(itemIndex))) {
+//        Geometry::IShape2D *shape = item->createShape();
+//        if (shape) {
+//            detectorMask.addMask(*shape,
+//                                 item->getRegisteredProperty(MaskItem::P_MASK_VALUE).toBool());
 //        }
+//        delete shape;
 //    }
+//}
+
+
 
-}
diff --git a/GUI/coregui/mainwindow/mainwindow.cpp b/GUI/coregui/mainwindow/mainwindow.cpp
index 00f4beee348f1cae6177ec33d8b7cafc2b0e1c22..d63eb4706761e5f4ac168d3c7f6bc41454d04f89 100644
--- a/GUI/coregui/mainwindow/mainwindow.cpp
+++ b/GUI/coregui/mainwindow/mainwindow.cpp
@@ -151,7 +151,7 @@ MainWindow::MainWindow(QWidget *parent)
 
     m_projectManager->createNewProject();
 
-    //testGUIObjectBuilder();
+    testGUIObjectBuilder();
 }
 
 MainWindow::~MainWindow()
@@ -317,7 +317,7 @@ void MainWindow::resetModels()
 void MainWindow::testGUIObjectBuilder()
 {
     SampleBuilderFactory factory;
-    boost::scoped_ptr<ISample> P_sample(factory.createSample("isgisaxs01"));
+    boost::scoped_ptr<ISample> P_sample(factory.createSample("CylindersAndPrismsBuilder"));
 
     GUIObjectBuilder guiBuilder;
     guiBuilder.populateSampleModel(m_sampleModel, *P_sample);