diff --git a/GUI/Model/Sample/SamplesSet.cpp b/GUI/Model/Sample/SamplesSet.cpp
index bc9a17930c696b8dd1154f5b04fa9ab5bdf1d55c..eddf8af483d568b44f0572a464ef49de1a8f21a4 100644
--- a/GUI/Model/Sample/SamplesSet.cpp
+++ b/GUI/Model/Sample/SamplesSet.cpp
@@ -46,13 +46,6 @@ void SamplesSet::addSampleItem(SampleItem* sample)
     m_samples.emplace_back(sample);
 }
 
-SampleItem* SamplesSet::copySample(SampleItem* source)
-{
-    auto* copy = addSampleItem();
-    GUI::Util::copyContents(source, copy);
-    return copy;
-}
-
 void SamplesSet::removeSample(SampleItem* sample)
 {
     m_samples.delete_element(sample);
diff --git a/GUI/Model/Sample/SamplesSet.h b/GUI/Model/Sample/SamplesSet.h
index e1b7fdc42ac5de3367ee1c356378ddbd6f3e9c20..4d29e60fe6f1e48e121d520648b58aedfbaf4080 100644
--- a/GUI/Model/Sample/SamplesSet.h
+++ b/GUI/Model/Sample/SamplesSet.h
@@ -31,7 +31,6 @@ public:
     SampleItem* addSampleItem();
     void addSampleItem(SampleItem* sample);
 
-    SampleItem* copySample(SampleItem* source);
     void removeSample(SampleItem* sample);
 
     QStringList sampleNames() const;
diff --git a/GUI/View/Sample/SamplesQModel.cpp b/GUI/View/Sample/SamplesQModel.cpp
index 5bea6d938e89cacb409fa54b9baed086f72d34fc..9d1463e2ff707e28a7887dfefedbf08414ebd9bf 100644
--- a/GUI/View/Sample/SamplesQModel.cpp
+++ b/GUI/View/Sample/SamplesQModel.cpp
@@ -126,10 +126,11 @@ QModelIndex SamplesQModel::copySample(SampleItem* item)
 
     const int row = m_sample_items->sampleItems().size();
     beginInsertRows(QModelIndex(), row, row);
-    auto* copy_item = m_sample_items->copySample(item);
-    copy_item->setSampleName(GUI::Util::String::suggestName(existingNames, item->sampleName()));
+    SampleItem* copied_item = item->clone();
+    copied_item->setSampleName(GUI::Util::String::suggestName(existingNames, item->sampleName()));
+    m_sample_items->addSampleItem(copied_item);
     endInsertRows();
-    return indexForItem(copy_item);
+    return indexForItem(copied_item);
 }
 
 QModelIndex SamplesQModel::createSample()