diff --git a/fsl/utils/slicecanvas.py b/fsl/utils/slicecanvas.py
index a7f5e98cb4d8c3dd17f97f19d56f8a97afd4a098..f8ff10a45edeb4b4211365fd35d72eb1aeabf172 100644
--- a/fsl/utils/slicecanvas.py
+++ b/fsl/utils/slicecanvas.py
@@ -249,6 +249,14 @@ class SliceCanvas(wxgl.GLCanvas):
 
         self.Bind(wx.EVT_PAINT, self.draw)
 
+        def alphaChanged(newAlpha, *a):
+            self.Refresh()
+
+        self.image.addListener(
+            'alpha',
+            'SliceCanvasAlpha_{}'.format(id(self)),
+            alphaChanged)
+
 
     def _initGLData(self):
         """
@@ -415,6 +423,10 @@ class SliceCanvas(wxgl.GLCanvas):
 
         gl.glUseProgram(self.shaders)
 
+        # enable transparency
+        gl.glEnable(gl.GL_BLEND)
+        gl.glBlendFunc(gl.GL_SRC_ALPHA, gl.GL_ONE_MINUS_SRC_ALPHA)
+
         # Set up the colour buffer
         gl.glEnable(gl.GL_TEXTURE_1D)
         gl.glActiveTexture(gl.GL_TEXTURE0)