diff --git a/Code/Mantid/MantidQt/SpectrumViewer/inc/MantidQtSpectrumViewer/SVConnections.h b/Code/Mantid/MantidQt/SpectrumViewer/inc/MantidQtSpectrumViewer/SVConnections.h
index 6a75cb238266c0bd6104798caaa963efb734cb81..07ee7c366ba5dccb90d595177c532e6b12df9ab6 100644
--- a/Code/Mantid/MantidQt/SpectrumViewer/inc/MantidQtSpectrumViewer/SVConnections.h
+++ b/Code/Mantid/MantidQt/SpectrumViewer/inc/MantidQtSpectrumViewer/SVConnections.h
@@ -97,6 +97,8 @@ public slots:
   void online_help_slot();
  
 private:
+  /// Event filter for mouse wheel capture
+  bool eventFilter(QObject *object, QEvent *event);
 
   Ui_SpectrumViewer*  sv_ui;
   SpectrumView*       sv_main_window;
diff --git a/Code/Mantid/MantidQt/SpectrumViewer/src/SVConnections.cpp b/Code/Mantid/MantidQt/SpectrumViewer/src/SVConnections.cpp
index c85067a4d281836f31ffcf745746d75de7a04dfd..0523d1559a029a457003288243eac0a39f21ba56 100644
--- a/Code/Mantid/MantidQt/SpectrumViewer/src/SVConnections.cpp
+++ b/Code/Mantid/MantidQt/SpectrumViewer/src/SVConnections.cpp
@@ -73,17 +73,22 @@ SVConnections::SVConnections( Ui_SpectrumViewer* ui,
   sv_ui->left_right_splitter->setSizes( horiz_sizes );
 
   sv_ui->imageHorizontalScrollBar->setFocusPolicy( Qt::StrongFocus );
+  sv_ui->imageHorizontalScrollBar->setMouseTracking(true);
   sv_ui->imageHorizontalScrollBar->setMinimum(20);
   sv_ui->imageHorizontalScrollBar->setMaximum(2000);
   sv_ui->imageHorizontalScrollBar->setPageStep(30);
   sv_ui->imageHorizontalScrollBar->setSingleStep(30/2);
 
   sv_ui->imageVerticalScrollBar->setFocusPolicy( Qt::StrongFocus );
+  sv_ui->imageVerticalScrollBar->setMouseTracking(true);
   sv_ui->imageVerticalScrollBar->setMinimum(0);
   sv_ui->imageVerticalScrollBar->setMaximum(10000000);
   sv_ui->imageVerticalScrollBar->setPageStep(500);
   sv_ui->imageVerticalScrollBar->setSingleStep(500/2);
 
+  // for forwarding scroll wheel events
+  sv_ui->spectrumPlot->canvas()->installEventFilter(this);
+
   sv_ui->action_Hscroll->setCheckable(true);
   sv_ui->action_Hscroll->setChecked(false);
   sv_ui->imageHorizontalScrollBar->hide();
@@ -272,6 +277,33 @@ SVConnections::~SVConnections()
   delete color_group;
 }
 
+/**
+ * @param object Object that the event came from.
+ * @param event The event being filtered.
+ * @return true if the event was consumed.
+ */
+bool SVConnections::eventFilter(QObject *object, QEvent *event)
+{
+  UNUSED_ARG(object);
+
+  if (event->type() == QEvent::Wheel)
+  {
+    QWheelEvent *wheelEvent = dynamic_cast<QWheelEvent *>(event);
+    if (wheelEvent)
+    {
+      if (wheelEvent->orientation() == Qt::Orientation::Vertical)
+      {
+        return sv_ui->imageVerticalScrollBar->event(wheelEvent);
+      }
+      else if (wheelEvent->orientation() == Qt::Orientation::Horizontal)
+      {
+        return sv_ui->imageHorizontalScrollBar->event(wheelEvent);
+      }
+    }
+  }
+  return false;
+}
+
 
 void SVConnections::close_viewer()
 {