diff --git a/GUI/coregui/Models/DataItem.cpp b/GUI/coregui/Models/DataItem.cpp
index 1aa35a68fa9ad41b5ecbe8c51c0a052d018303de..82da59fd5d3f59a14b552c3ff3398db4f3bdcc82 100644
--- a/GUI/coregui/Models/DataItem.cpp
+++ b/GUI/coregui/Models/DataItem.cpp
@@ -27,14 +27,13 @@ void DataItem::setOutputData(OutputData<double>* data)
     m_data.reset(data);
 }
 
-void DataItem::setRawDataVector(const OutputData<double>* data)
+void DataItem::setRawDataVector(std::vector<double> data)
 {
-    if (!m_data->hasSameDimensions(*data)) {
+    if (m_data->getAllocatedSize() != data.size())
         throw GUIHelpers::Error("DataItem::setRawDataVector() -> Error. "
-                                "Different dimensions of data.");
-    }
+                                "Different data size.");
     std::unique_lock<std::mutex> lock(m_update_data_mutex);
-    m_data->setRawDataVector(data->getRawDataVector());
+    m_data->setRawDataVector(std::move(data));
     emitDataChanged();
 }
 
diff --git a/GUI/coregui/Models/DataItem.h b/GUI/coregui/Models/DataItem.h
index abf85f1559e1c37191144305c345dd51bbd1b226..d8ea6b9c4f7592dddcaf05a57d2b740e829db16e 100644
--- a/GUI/coregui/Models/DataItem.h
+++ b/GUI/coregui/Models/DataItem.h
@@ -33,7 +33,11 @@ public:
     OutputData<double>* getOutputData() { return m_data.get(); }
     const OutputData<double>* getOutputData() const { return m_data.get(); }
     virtual void setOutputData(OutputData<double>* data) = 0;
-    void setRawDataVector(const OutputData<double>* data);
+
+    //! Sets the raw data vector from external source
+    //! Checks only the equality of data size,
+    //! no dimension checks are applied.
+    void setRawDataVector(std::vector<double> data);
 
     QString fileName(const QString& projectDir = QString()) const;