diff --git a/Sample/SampleBuilderEngine/SampleProvider.cpp b/Sample/SampleBuilderEngine/SampleProvider.cpp
index 5ae40d732e341ad1c29051c4dcbeecc432e75202..df24f04186048cc88f8a1d386836fa15b2f7d148 100644
--- a/Sample/SampleBuilderEngine/SampleProvider.cpp
+++ b/Sample/SampleBuilderEngine/SampleProvider.cpp
@@ -17,25 +17,6 @@
 
 SampleProvider::SampleProvider() = default;
 
-SampleProvider::SampleProvider(const SampleProvider& other) : INode()
-{
-    if (other.m_multilayer)
-        setSample(*other.m_multilayer);
-
-    if (other.m_sample_builder)
-        setBuilder(other.m_sample_builder.builder());
-}
-
-SampleProvider& SampleProvider::operator=(const SampleProvider& other)
-{
-    if (this != &other) {
-        SampleProvider tmp(other);
-        std::swap(m_multilayer, tmp.m_multilayer);
-        std::swap(m_sample_builder, tmp.m_sample_builder);
-    }
-    return *this;
-}
-
 SampleProvider::~SampleProvider() = default;
 
 void SampleProvider::setSample(const MultiLayer& multilayer)
diff --git a/Sample/SampleBuilderEngine/SampleProvider.h b/Sample/SampleBuilderEngine/SampleProvider.h
index 58fb04ec5e422837818f6d4a3b7fedbc1dd5af6c..ff58f3aa1f0aa5aad4eecf022977be0160a8bc2e 100644
--- a/Sample/SampleBuilderEngine/SampleProvider.h
+++ b/Sample/SampleBuilderEngine/SampleProvider.h
@@ -30,8 +30,7 @@ class MultiLayer;
 class SampleProvider : public INode {
 public:
     SampleProvider();
-    SampleProvider(const SampleProvider& other); // TODO ASAP can't we clone?
-    SampleProvider& operator=(const SampleProvider& other);
+    SampleProvider(const SampleProvider& other) = delete;
     ~SampleProvider();
 
     void setSample(const MultiLayer& multilayer);
diff --git a/Tests/UnitTests/Core/Sample/SampleProviderTest.cpp b/Tests/UnitTests/Core/Sample/SampleProviderTest.cpp
index e2a1cce4848a86d9ff248e72797ebb79d89e03c4..4ca9f81a3c079dd4634c9205df7b4d58025846f4 100644
--- a/Tests/UnitTests/Core/Sample/SampleProviderTest.cpp
+++ b/Tests/UnitTests/Core/Sample/SampleProviderTest.cpp
@@ -23,17 +23,10 @@ public:
             registerChild(&m_provider);
         }
 
-        TestSimulation(const TestSimulation& other) : INode(), m_provider(other.m_provider)
-        {
-            setName("TestSimulation");
-            registerChild(&m_provider);
-        }
-
         void accept(INodeVisitor* visitor) const override { visitor->visit(this); }
 
         std::vector<const INode*> getChildren() const override { return m_provider.getChildren(); }
 
-        void setContainer(const SampleProvider& provider) { m_provider = provider; }
         SampleProvider m_provider;
     };
 
@@ -59,12 +52,6 @@ TEST_F(SampleProviderTest, initialState)
     provider.setSample(*SampleProviderTest::testMultiLayer(42.0));
     EXPECT_EQ(provider.sample()->crossCorrLength(), 42.0);
     EXPECT_EQ(provider.sample()->parent(), nullptr);
-
-    // checking assignment operator
-    SampleProvider provider2;
-    provider2 = provider;
-    EXPECT_EQ(provider2.sample()->crossCorrLength(), 42.0);
-    EXPECT_EQ(provider2.sample()->parent(), nullptr);
 }
 
 //! Testing sample builder assignment.
@@ -85,21 +72,6 @@ TEST_F(SampleProviderTest, sampleBuilder)
     // Updating sample and checking if it is generated by sample builder
     provider.updateSample();
     EXPECT_EQ(provider.sample()->crossCorrLength(), 33.0);
-
-    // Copying container, sample_builder should be copied, but not the sample
-    SampleProvider provider2;
-    provider2 = provider;
-    EXPECT_EQ(provider2.sample(), nullptr);
-    EXPECT_EQ(builder.use_count(), 3);
-
-    // updating sample in second container
-    provider2.updateSample();
-    EXPECT_EQ(provider2.sample()->crossCorrLength(), 33.0);
-
-    // setting new sample, builder should go
-    provider2.setSample(*SampleProviderTest::testMultiLayer(42.0));
-    EXPECT_EQ(builder.use_count(), 2);
-    EXPECT_EQ(provider2.sample()->crossCorrLength(), 42.0);
 }
 
 //! Test parentship of container and sample in simulation context.
@@ -117,15 +89,6 @@ TEST_F(SampleProviderTest, sampleInSimulationContext)
     // children of container
     ASSERT_EQ(provider.getChildren().size(), 1u);
     EXPECT_EQ(provider.getChildren()[0], provider.sample());
-
-    // creating second simulation via copy-construction
-    SampleProviderTest::TestSimulation sim2(sim);
-    SampleProvider& provider2 = sim2.m_provider;
-
-    // check that parent has changed for new container and its sample
-    EXPECT_EQ(provider2.parent(), &sim2);
-    EXPECT_EQ(provider2.sample()->parent(), &sim2);
-    EXPECT_EQ(provider2.sample()->crossCorrLength(), 42.0);
 }
 
 //! Test parentship of container and builder in simulation context.
diff --git a/auto/Wrap/doxygenSample.i b/auto/Wrap/doxygenSample.i
index f013c53ab7b6eed1b202418a84e990eabff79bf0..46c61c76f4d5429fd1b7a7aaa7ebe0d037665ce8 100644
--- a/auto/Wrap/doxygenSample.i
+++ b/auto/Wrap/doxygenSample.i
@@ -6031,7 +6031,7 @@ C++ includes: SampleProvider.h
 %feature("docstring")  SampleProvider::SampleProvider "SampleProvider::SampleProvider()
 ";
 
-%feature("docstring")  SampleProvider::SampleProvider "SampleProvider::SampleProvider(const SampleProvider &other)
+%feature("docstring")  SampleProvider::SampleProvider "SampleProvider::SampleProvider(const SampleProvider &other)=delete
 ";
 
 %feature("docstring")  SampleProvider::~SampleProvider "SampleProvider::~SampleProvider()