diff --git a/Device/Data/Datafield.cpp b/Device/Data/Datafield.cpp
index e2ddec6ee0291adc4057cc60a849e3749af7c3e7..12646204a34857bd5a24dd37cc33e4477dcaedaa 100644
--- a/Device/Data/Datafield.cpp
+++ b/Device/Data/Datafield.cpp
@@ -62,7 +62,7 @@ Datafield::~Datafield() {}
 
 Datafield* Datafield::clone() const
 {
-    return new Datafield(m_frame->cloned_axes(), m_values);
+    return new Datafield(m_frame->cloned_axes(), m_values, m_errSigmas);
 }
 
 void Datafield::setAt(size_t i, double val)
@@ -156,7 +156,13 @@ Datafield* Datafield::normalizedToMaximum() const
     std::vector<double> out(frame().size());
     for (size_t i = 0; i < frame().size(); ++i)
         out[i] = m_values[i] / maxval;
-    return new Datafield(m_frame->cloned_axes(), out);
+
+    // error sigmas
+    std::vector<double> outErr(m_errSigmas.size());
+    for (size_t i = 0; i < m_errSigmas.size(); ++i)
+        outErr[i] = m_errSigmas[i] / maxval;
+
+    return new Datafield(m_frame->cloned_axes(), out, outErr);
 }
 
 double Datafield::maxVal() const