diff --git a/fsl/fsleyes/displaycontext/vectoropts.py b/fsl/fsleyes/displaycontext/vectoropts.py
index dcfb79f46bc5e7af067d1da54195dfa9a73927a0..4326dbe28f9e0a271cddb4f425561adb616b33b0 100644
--- a/fsl/fsleyes/displaycontext/vectoropts.py
+++ b/fsl/fsleyes/displaycontext/vectoropts.py
@@ -181,7 +181,7 @@ class VectorOpts(volumeopts.Nifti1Opts):
         """
         
         prop     = self.getProp(imageName)
-        val      = self.modulateImage
+        val      = getattr(self, imageName)
         overlays = self.displayCtx.getOrderedOverlays()
 
         options = [None]
diff --git a/fsl/fsleyes/gl/gl21/glvector_funcs.py b/fsl/fsleyes/gl/gl21/glvector_funcs.py
index 3a95d81e7f7197726d9afaef71cd83634a7bfea5..2e4b59320d9737d574a112f462b3039f158b3334 100644
--- a/fsl/fsleyes/gl/gl21/glvector_funcs.py
+++ b/fsl/fsleyes/gl/gl21/glvector_funcs.py
@@ -31,6 +31,8 @@ def compileShaders(self, vertShader, indexed=False):
     opts                = self.displayOpts
     useVolumeFragShader = opts.colourImage is not None
 
+    self.useVolumeFragShader = useVolumeFragShader
+
     if useVolumeFragShader: fragShader = 'glvolume'
     else:                   fragShader = 'glvector'
 
@@ -48,7 +50,6 @@ def updateFragmentShaderState(self, useSpline=False):
     changed             = False
     opts                = self.displayOpts
     shader              = self.shader
-    useVolumeFragShader = opts.colourImage is not None
 
     invClipValXform = self.clipTexture.invVoxValXform
     clippingRange   = opts.clippingRange
@@ -67,7 +68,7 @@ def updateFragmentShaderState(self, useSpline=False):
         clipLow  = -0.1
         clipHigh =  1.1
 
-    if useVolumeFragShader:
+    if self.useVolumeFragShader:
 
         voxValXform     = self.colourTexture.voxValXform
         invVoxValXform  = self.colourTexture.invVoxValXform