diff --git a/MantidQt/API/src/QwtWorkspaceSpectrumData.cpp b/MantidQt/API/src/QwtWorkspaceSpectrumData.cpp
index 955bc7b268c87e2d11dd6b547ae9f31874e70e03..6788c723f967fedbd2681be803323088e1def82b 100644
--- a/MantidQt/API/src/QwtWorkspaceSpectrumData.cpp
+++ b/MantidQt/API/src/QwtWorkspaceSpectrumData.cpp
@@ -77,7 +77,7 @@ Return the y value of data point i
 double QwtWorkspaceSpectrumData::getY(size_t i) const {
   double tmp = i < m_Y.size() ? m_Y[i] : m_Y[m_Y.size() - 1];
   if (m_isDistribution) {
-    tmp /= (m_X[i + 1] - m_X[i]);
+    tmp /= fabs(m_X[i + 1] - m_X[i]);
   }
   return tmp;
 }
@@ -89,7 +89,7 @@ double QwtWorkspaceSpectrumData::getEX(size_t i) const {
 double QwtWorkspaceSpectrumData::getE(size_t i) const {
   double ei = (i < m_E.size()) ? m_E[i] : m_E[m_E.size() - 1];
   if (m_isDistribution) {
-    ei /= (m_X[i + 1] - m_X[i]);
+    ei /= fabs(m_X[i + 1] - m_X[i]);
   }
   return ei;
 }
@@ -132,4 +132,4 @@ operator=(const QwtWorkspaceSpectrumData &rhs) {
     m_binCentres = rhs.m_binCentres;
   }
   return *this;
-}
\ No newline at end of file
+}