diff --git a/Code/Mantid/MantidPlot/CMakeLists.txt b/Code/Mantid/MantidPlot/CMakeLists.txt
index 4b87d308cf2b205e676154c91d0d9eb8295a2b09..889fff3e35745b60343cf6c00fcf509fcfec2e07 100644
--- a/Code/Mantid/MantidPlot/CMakeLists.txt
+++ b/Code/Mantid/MantidPlot/CMakeLists.txt
@@ -142,6 +142,12 @@ set ( QTIPLOT_SRCS src/ApplicationWindow.cpp
                    src/lib/3rdparty/qtcolorpicker/src/qtcolorpicker.cpp
 )
 
+# Suppress compiler warning on file that isn't ours
+if ( CMAKE_COMPILER_IS_GNUCXX )
+  set_source_files_properties ( src/lib/3rdparty/qtcolorpicker/src/qtcolorpicker.cpp 
+                                PROPERTIES COMPILE_FLAGS -Wno-cast-qual )
+endif ()
+
 set ( MANTID_SRCS  src/Mantid/AbstractMantidLog.cpp
                    src/Mantid/AlgMonitor.cpp
                    src/Mantid/AlgorithmHistoryWindow.cpp
@@ -711,7 +717,7 @@ include_directories ( src )
 include_directories ( src/lib/include )
 include_directories ( src/lib/3rdparty/qtcolorpicker/src )
 
-set ( SRC_FILES ${QTIPLOT_SRCS} ${MANTID_SRCS} ${SIP_SRC} )
+set ( SRC_FILES ${QTIPLOT_SRCS} ${QT_SOLUTIONS_SRCS} ${MANTID_SRCS} ${SIP_SRC} )
 set ( INC_FILES ${QTIPLOT_HDRS} ${MANTID_HDRS} )
 
 ###########################################################################
diff --git a/Code/Mantid/MantidPlot/src/Graph.cpp b/Code/Mantid/MantidPlot/src/Graph.cpp
index 115c8651bfc8b10ae7c09e42827381d0b1274083..c0b2e13aca303e435776d45e4274d3450dc6006f 100644
--- a/Code/Mantid/MantidPlot/src/Graph.cpp
+++ b/Code/Mantid/MantidPlot/src/Graph.cpp
@@ -5571,6 +5571,7 @@ void Graph::updateWaterfallFill(bool on)
 
 void Graph::setWaterfallSideLines(bool on)
 {
+  UNUSED_ARG(on)
 	// TODO: Make this work
 	//int n = d_curves.size();
 	//if (!n)
diff --git a/Code/Mantid/MantidPlot/src/PlotCurve.cpp b/Code/Mantid/MantidPlot/src/PlotCurve.cpp
index d9d26fd4686852959df9d6c605ff918ef6530eaf..c0c9e0ed0714b20723cd5f7fde3f177989e7c732 100644
--- a/Code/Mantid/MantidPlot/src/PlotCurve.cpp
+++ b/Code/Mantid/MantidPlot/src/PlotCurve.cpp
@@ -377,12 +377,12 @@ void DataCurve::loadData()
       double xmin = c->minXValue();
       double dx = index*g->waterfallXOffset()*0.01*plot->canvas()->width()/(double)(curves - 1);
       //double dx = index*g->waterfallXOffset()*0.01*g->canvas()->width()/(double)(curves - 1);
-      d_x_offset = plot->invTransform(xAxis, plot->transform(xAxis, xmin) + dx) - xmin;
+      d_x_offset = plot->invTransform(xAxis, plot->transform(xAxis, xmin) + (int)dx) - xmin;
 
       double ymin = c->minYValue();
       double dy = index*g->waterfallYOffset()*0.01*plot->canvas()->height()/(double)(curves - 1);
       //double dy = index*g->waterfallYOffset()*0.01*g->canvas()->height()/(double)(curves - 1);
-      d_y_offset = ymin - plot->invTransform(yAxis(), plot->transform(yAxis(), ymin) + dy);
+      d_y_offset = ymin - plot->invTransform(yAxis(), plot->transform(yAxis(), ymin) + (int)dy);
 
       setZ(-index);
       setBaseline(d_y_offset);