diff --git a/fsl/data/strings.py b/fsl/data/strings.py
index e44661918c450926956342bcbd3bc4576d7f0ce6..a21dd084bb615466f83c8080e4cee459a616ea9f 100644
--- a/fsl/data/strings.py
+++ b/fsl/data/strings.py
@@ -527,16 +527,16 @@ properties = TypeDict({
     'ImageOpts.transform'  : 'Image transform',
     'ImageOpts.volume'     : 'Volume',
     
-    'VolumeOpts.displayRange'       : 'Display range',
-    'VolumeOpts.clippingRange'      : 'Clipping range',
-    'VolumeOpts.linkLowRanges'      : 'Link low display/clipping ranges',
-    'VolumeOpts.linkHighRanges'     : 'Link high display/clipping ranges',
-    'VolumeOpts.cmap'               : 'Colour map',
-    'VolumeOpts.negativeCmap'       : '-ve colour map',
-    'VolumeOpts.enableNegativeCmap' : '-ve colour map',
-    'VolumeOpts.invert'             : 'Invert colour map',
-    'VolumeOpts.invertClipping'     : 'Invert clipping range',
-    'VolumeOpts.interpolation'      : 'Interpolation',
+    'VolumeOpts.displayRange'    : 'Display range',
+    'VolumeOpts.clippingRange'   : 'Clipping range',
+    'VolumeOpts.linkLowRanges'   : 'Link low display/clipping ranges',
+    'VolumeOpts.linkHighRanges'  : 'Link high display/clipping ranges',
+    'VolumeOpts.cmap'            : 'Colour map',
+    'VolumeOpts.negativeCmap'    : '-ve colour map',
+    'VolumeOpts.useNegativeCmap' : '-ve colour map',
+    'VolumeOpts.invert'          : 'Invert colour map',
+    'VolumeOpts.invertClipping'  : 'Invert clipping range',
+    'VolumeOpts.interpolation'   : 'Interpolation',
 
     'MaskOpts.colour'         : 'Colour',
     'MaskOpts.invert'         : 'Invert',
diff --git a/fsl/fsleyes/autodisplay.py b/fsl/fsleyes/autodisplay.py
index 98ee4a67014cc5ca36e518e424cf4e0202fdd606..fa9e0a1a6324659f3e0115438838a326ccfc8fbe 100644
--- a/fsl/fsleyes/autodisplay.py
+++ b/fsl/fsleyes/autodisplay.py
@@ -64,7 +64,7 @@ def _isStatImage(overlay):
     basename = op.basename(overlay.dataSource)
     basename = fslimage.removeExt(basename)
     tokens   = ['zstat', 'tstat', 'fstat', 'zfstat']
-    pattern  = '_({})\d+'.format('|'.join(tokens))
+    pattern  = '({})\d+'.format('|'.join(tokens))
 
     return re.search(pattern, basename) is not None
 
@@ -90,7 +90,6 @@ def _statImageDisplay(overlay, overlayList, displayCtx):
     basename    = op.basename(overlay.dataSource)
     basename    = fslimage.removeExt(basename)
     
-    nameTokens  = basename.split('_')
     pTokens     = ['p', 'corrp']
     statTokens  = ['zstat', 'tstat', 'zfstat']
     fStatTokens = ['fstat']
@@ -100,7 +99,7 @@ def _statImageDisplay(overlay, overlayList, displayCtx):
     # generated specifically for
     # use with the Render1 colour
     # map.
-    if 'rendered' in nameTokens:
+    if 'rendered' in basename:
         opts.cmap = 'Render1'
     
     # Give each normal stat image
@@ -111,25 +110,28 @@ def _statImageDisplay(overlay, overlayList, displayCtx):
         _statImageDisplay.currentCmap += 1
         _statImageDisplay.currentCmap %= len(_statImageDisplay.cmaps)
         opts.cmap                      = cmap
+        opts.negativeCmap              = cmap
         
     # The order of these tests is
     # important, due to name overlap
 
+    print 'which one', basename
+
     # P-value image ?
-    if any([token in nameTokens for token in pTokens]):
+    if any([token in basename for token in pTokens]):
         opts.displayRange  = [0.95, 1.0]
         opts.clippingRange = [0.95, 1.0]
 
     # T or Z stat image?
-    elif any([token in nameTokens for token in statTokens]):
-        
-        opts.clippingRange  = [-0.1, 0.1]
-        opts.displayRange   = [-7.5, 7.5]
-        opts.centreRanges   = True
-        opts.invertClipping = True
+    elif any([token in basename for token in statTokens]) and \
+       'rendered' not in basename:
+
+        opts.clippingRange   = [2.3, opts.dataMax]
+        opts.displayRange    = [2.3, 7.5]
+        opts.useNegativeCmap = True
 
     # F stat image?
-    elif any([token in nameTokens for token in fStatTokens]):
+    elif any([token in basename for token in fStatTokens]):
         opts.displayRange = [0, 10]
 
 
@@ -157,11 +159,11 @@ def _peImageDisplay(overlay, overlayList, displayCtx):
     """ 
     opts = displayCtx.getOpts(overlay)
 
-    opts.cmap           = 'Render3'
-    opts.clippingRange  = [-1,   1]
-    opts.displayRange   = [-100, 100]
-    opts.centreRanges   = True
-    opts.invertClipping = True
+    opts.cmap            = 'Red-Yellow'
+    opts.negativeCmap    = 'Blue-LightBlue'
+    opts.displayRange    = [1.0, 100.0]
+    opts.clippingRange   = [1.0, opts.dataMax]
+    opts.useNegativeCmap = True 
 
 
 def _FEATImageDisplay(overlay, overlayList, displayCtx):
@@ -178,12 +180,11 @@ def _MelodicImageDisplay(overlay, overlayList, displayCtx):
 
     opts = displayCtx.getOpts(overlay)
 
-    opts.cmap           = 'Render3'
-    opts.displayRange   = [-5.0, 5.0]
-    opts.clippingRange  = [-1.5, 1.5]
-
-    opts.centreRanges   = True
-    opts.invertClipping = True
+    opts.cmap            = 'Red-Yellow'
+    opts.negativeCmap    = 'Blue-LightBlue'
+    opts.displayRange    = [1.5, 5.0]
+    opts.clippingRange   = [1.5, opts.dataMax]
+    opts.useNegativeCmap = True 
 
 
 def _ModelDisplay(overlay, display, overlayList, displayCtx):
diff --git a/fsl/fsleyes/controls/overlaydisplaypanel.py b/fsl/fsleyes/controls/overlaydisplaypanel.py
index 0c9fe561fbbfe8d04d06c7ad2be85a62f8f1b6af..c69721c3a4f62b230673ee3acd0b08bb5c5e1d44 100644
--- a/fsl/fsleyes/controls/overlaydisplaypanel.py
+++ b/fsl/fsleyes/controls/overlaydisplaypanel.py
@@ -237,7 +237,7 @@ class OverlayDisplayPanel(fslpanel.FSLEyesPanel):
     def __buildColourMapWidget(self, target, cmapWidget):
         """Builds a panel which contains widgets for controlling the
         :attr:`.VolumeOpts.cmap`, :attr:`.VolumeOpts.negativeCmap`, and
-        :attr:`.VolumeOpts.enableNegativeCmap`.
+        :attr:`.VolumeOpts.useNegativeCmap`.
         """
 
         widgets = self.__widgets
@@ -253,24 +253,23 @@ class OverlayDisplayPanel(fslpanel.FSLEyesPanel):
         loadAction.bindToWidget(self, wx.EVT_BUTTON, loadButton)
 
         # Negative colour map widget
-        negCmap       = props.Widget('negativeCmap',
-                                     enabledWhen=lambda i, enc: enc,
-                                     dependencies=['enableNegativeCmap'])
-        enableNegCmap = props.Widget('enableNegativeCmap')
+        negCmap    = props.Widget('negativeCmap',
+                                  enabledWhen=lambda i, enc: enc,
+                                  dependencies=['useNegativeCmap'])
+        useNegCmap = props.Widget('useNegativeCmap')
         
-        negCmap       = props.buildGUI(widgets, target, negCmap)
-        enableNegCmap = props.buildGUI(widgets, target, enableNegCmap)
+        negCmap    = props.buildGUI(widgets, target, negCmap)
+        useNegCmap = props.buildGUI(widgets, target, useNegCmap)
 
-        enableNegCmap.SetLabel(
-            strings.properties[target, 'enableNegativeCmap'])
+        useNegCmap.SetLabel(strings.properties[target, 'useNegativeCmap'])
 
         sizer = wx.FlexGridSizer(2, 2)
         sizer.AddGrowableCol(0)
 
-        sizer.Add(cmapWidget,    flag=wx.EXPAND)
-        sizer.Add(loadButton,    flag=wx.EXPAND)
-        sizer.Add(negCmap,       flag=wx.EXPAND)
-        sizer.Add(enableNegCmap, flag=wx.EXPAND)
+        sizer.Add(cmapWidget, flag=wx.EXPAND)
+        sizer.Add(loadButton, flag=wx.EXPAND)
+        sizer.Add(negCmap,    flag=wx.EXPAND)
+        sizer.Add(useNegCmap, flag=wx.EXPAND)
         
         return sizer
 
diff --git a/fsl/fsleyes/displaycontext/volumeopts.py b/fsl/fsleyes/displaycontext/volumeopts.py
index 4e303f0ec971d8566d2ba5167f443db9f3e67ced..599bce8b9bc4ab89c32a9bc660eb2441e6dbc6a4 100644
--- a/fsl/fsleyes/displaycontext/volumeopts.py
+++ b/fsl/fsleyes/displaycontext/volumeopts.py
@@ -494,13 +494,13 @@ class VolumeOpts(ImageOpts):
 
 
     negativeCmap = props.ColourMap()
-    """A second colour map, used if :attr:`enableNegativeCmap` is ``True``.
+    """A second colour map, used if :attr:`useNegativeCmap` is ``True``.
     When active, the :attr:`cmap` is used to colour positive values, and
     the :attr:`negativeCmap` is used to colour negative values.
     """
 
     
-    enableNegativeCmap = props.Boolean(default=False)
+    useNegativeCmap = props.Boolean(default=False)
     """When ``True``, the :attr:`cmap` is used to colour positive values,
     and the :attr:`negativeCmap` is used to colour negative values.
     When this property is enabled, the minimum value for both the
@@ -607,9 +607,9 @@ class VolumeOpts(ImageOpts):
             self   .addListener('displayRange',
                                 self.name,
                                 self.__displayRangeChanged)
-            self   .addListener('enableNegativeCmap',
+            self   .addListener('useNegativeCmap',
                                 self.name,
-                                self.__enableNegativeCmapChanged)
+                                self.__useNegativeCmapChanged)
             self   .addListener('linkLowRanges',
                                 self.name,
                                 self.__linkLowRangesChanged)
@@ -630,13 +630,13 @@ class VolumeOpts(ImageOpts):
                            display,
                            display.getSyncPropertyName('contrast'))
 
-            # If enableNegativeCmap, linkLowRanges or linkHighRanges
+            # If useNegativeCmap, linkLowRanges or linkHighRanges
             # have been set to True (this will happen if they
             # are true on the parent VolumeOpts instance), make
             # sure the property / listener states are up to date.
-            if self.enableNegativeCmap: self.__enableNegativeCmapChanged()
-            if self.linkLowRanges:      self.__linkLowRangesChanged()
-            if self.linkHighRanges:     self.__linkHighRangesChanged()
+            if self.useNegativeCmap: self.__useNegativeCmapChanged()
+            if self.linkLowRanges:   self.__linkLowRangesChanged()
+            if self.linkHighRanges:  self.__linkHighRangesChanged()
 
 
     @actions.action
@@ -741,7 +741,7 @@ class VolumeOpts(ImageOpts):
         See :func:`.colourmaps.displayRangeToBricon`.
         """
 
-        if self.enableNegativeCmap:
+        if self.useNegativeCmap:
             return
 
         brightness, contrast = fslcm.displayRangeToBricon(
@@ -757,14 +757,14 @@ class VolumeOpts(ImageOpts):
         self.__toggleListeners(True)
 
 
-    def __enableNegativeCmapChanged(self, *a):
-        """Called when the :attr:`enableNegativeCmap` property changes.
+    def __useNegativeCmapChanged(self, *a):
+        """Called when the :attr:`useNegativeCmap` property changes.
         Enables/disables the :attr:`.Display.brightness` and
         :attr:`.Display.contrast` properties, and configures limits
         on the :attr:`clippingRange` and :attr:`displayRange` properties.
         """
 
-        if self.enableNegativeCmap:
+        if self.useNegativeCmap:
             self.display.disableProperty('brightness')
             self.display.disableProperty('contrast')
             self.displayRange .xmin = 0.0
diff --git a/fsl/fsleyes/gl/gl14/glvolume_funcs.py b/fsl/fsleyes/gl/gl14/glvolume_funcs.py
index 9fa8aa1b5455cac044074d087f08cd12c5edbf2a..41a1bdbc5ee35561b3d5f2ea5d43f5968119004e 100644
--- a/fsl/fsleyes/gl/gl14/glvolume_funcs.py
+++ b/fsl/fsleyes/gl/gl14/glvolume_funcs.py
@@ -93,8 +93,8 @@ def updateShaderState(self):
 
     # And the clipping range, normalised
     # to the image texture value range
-    invClip    = 1 if opts.invertClipping     else -1
-    useNegCmap = 1 if opts.enableNegativeCmap else  0
+    invClip    = 1 if opts.invertClipping  else -1
+    useNegCmap = 1 if opts.useNegativeCmap else  0
     
     xform   = self.imageTexture.invVoxValXform
     clipLo  = opts.clippingRange[0] * xform[0, 0] + xform[3, 0]
diff --git a/fsl/fsleyes/gl/gl21/glvolume_frag.glsl b/fsl/fsleyes/gl/gl21/glvolume_frag.glsl
index 5b56722b1689e91bf76b86e20b90c7d2b0aad90d..12e0684fe3e55e8f5823ad1473ec5777ba46e43b 100644
--- a/fsl/fsleyes/gl/gl21/glvolume_frag.glsl
+++ b/fsl/fsleyes/gl/gl21/glvolume_frag.glsl
@@ -27,7 +27,7 @@ uniform sampler1D negColourTexture;
  * Flag which determines whether to 
  * use the negative colour map.
  */
-uniform bool enableNegCmap;
+uniform bool useNegCmap;
 
 /*
  * Shape of the imageTexture.
@@ -61,7 +61,7 @@ uniform float clipHigh;
 /*
  * Value in the image texture data range which corresponds
  * to zero - this is used to determine whether to use the 
- * regular, or the negative colour texture (if enableNegCmap
+ * regular, or the negative colour texture (if useNegCmap
  * is true).
  */
 uniform float texZero;
@@ -87,8 +87,8 @@ void main(void) {
 
     float voxValue;
     vec4  normVoxValue;
-    bool  useNegCmap = false;
-    vec3  voxCoord   = fragVoxCoord;
+    bool  negCmap  = false;
+    vec3  voxCoord = fragVoxCoord;
 
     /*
      * Skip voxels that are out of the image bounds
@@ -116,10 +116,10 @@ void main(void) {
      * value, and set a flag telling the code
      * below to use the neagtive colour map.
      */
-    if (enableNegCmap && voxValue <= texZero) {
+    if (useNegCmap && voxValue <= texZero) {
 
-        useNegCmap = true;
-        voxValue   = texZero + (texZero - voxValue);
+        negCmap  = true;
+        voxValue = texZero + (texZero - voxValue);
     }
 
     /*
@@ -138,6 +138,6 @@ void main(void) {
      */ 
     normVoxValue = voxValXform * vec4(voxValue, 0, 0, 1);
 
-    if (useNegCmap) gl_FragColor = texture1D(negColourTexture, normVoxValue.x);
-    else            gl_FragColor = texture1D(colourTexture,    normVoxValue.x);
+    if (negCmap) gl_FragColor = texture1D(negColourTexture, normVoxValue.x);
+    else         gl_FragColor = texture1D(colourTexture,    normVoxValue.x);
 }
diff --git a/fsl/fsleyes/gl/gl21/glvolume_funcs.py b/fsl/fsleyes/gl/gl21/glvolume_funcs.py
index a0e87d615f59d0043b3f2c0993e19d1f88860a9d..ce9fffc1557c3b42d494473dd1c36b9c8f422921 100644
--- a/fsl/fsleyes/gl/gl21/glvolume_funcs.py
+++ b/fsl/fsleyes/gl/gl21/glvolume_funcs.py
@@ -70,8 +70,8 @@ def compileShaders(self):
                                                        'colourTexture')
     self.negColourTexturePos = gl.glGetUniformLocation(self.shaders,
                                                        'negColourTexture') 
-    self.enableNegCmapPos    = gl.glGetUniformLocation(self.shaders,
-                                                       'enableNegCmap')
+    self.useNegCmapPos       = gl.glGetUniformLocation(self.shaders,
+                                                       'useNegCmap')
     self.texZeroPos          = gl.glGetUniformLocation(self.shaders,
                                                        'texZero') 
     self.imageShapePos       = gl.glGetUniformLocation(self.shaders,
@@ -113,11 +113,11 @@ def updateShaderState(self):
     clipHigh = opts.clippingRange[1] * xform[0, 0] + xform[3, 0]
     texZero  = 0.0                   * xform[0, 0] + xform[3, 0]
 
-    gl.glUniform1f(self.clipLowPos,       clipLow)
-    gl.glUniform1f(self.clipHighPos,      clipHigh)
-    gl.glUniform1f(self.texZeroPos,       texZero)
-    gl.glUniform1f(self.invertClipPos,    opts.invertClipping)
-    gl.glUniform1f(self.enableNegCmapPos, opts.enableNegativeCmap)
+    gl.glUniform1f(self.clipLowPos,    clipLow)
+    gl.glUniform1f(self.clipHighPos,   clipHigh)
+    gl.glUniform1f(self.texZeroPos,    texZero)
+    gl.glUniform1f(self.invertClipPos, opts.invertClipping)
+    gl.glUniform1f(self.useNegCmapPos, opts.useNegativeCmap)
     
     # Bind transformation matrix to transform
     # from image texture values to voxel values,
diff --git a/fsl/fsleyes/gl/glvolume.py b/fsl/fsleyes/gl/glvolume.py
index 9c19c478467afd626255286d892341aa603c1e96..227a2042945ecf92e28cdf9c5228ca38a333bf82 100644
--- a/fsl/fsleyes/gl/glvolume.py
+++ b/fsl/fsleyes/gl/glvolume.py
@@ -227,7 +227,7 @@ class GLVolume(globject.GLImageObject):
         opts   .addListener('invertClipping', lName, shaderUpdate,  weak=False)
         opts   .addListener('cmap',           lName, colourUpdate,  weak=False)
         opts   .addListener('negativeCmap',   lName, colourUpdate,  weak=False)
-        opts   .addListener('enableNegativeCmap',
+        opts   .addListener('useNegativeCmap',
                             lName, colourUpdate,  weak=False)
         opts   .addListener('invert',         lName, colourUpdate,  weak=False)
         opts   .addListener('volume',         lName, imageUpdate,   weak=False)
@@ -263,19 +263,19 @@ class GLVolume(globject.GLImageObject):
 
         lName = self.name
         
-        display.removeListener(          'alpha',              lName)
-        opts   .removeListener(          'displayRange',       lName)
-        opts   .removeListener(          'clippingRange',      lName)
-        opts   .removeListener(          'invertClipping',     lName)
-        opts   .removeListener(          'cmap',               lName)
-        opts   .removeListener(          'negativeCmap',       lName)
-        opts   .removeListener(          'enableNegativeCmap', lName)
-        opts   .removeListener(          'cmap',               lName)
-        opts   .removeListener(          'invert',             lName)
-        opts   .removeListener(          'volume',             lName)
-        opts   .removeListener(          'resolution',         lName)
-        opts   .removeListener(          'interpolation',      lName)
-        opts   .removeListener(          'transform',          lName)
+        display.removeListener(          'alpha',           lName)
+        opts   .removeListener(          'displayRange',    lName)
+        opts   .removeListener(          'clippingRange',   lName)
+        opts   .removeListener(          'invertClipping',  lName)
+        opts   .removeListener(          'cmap',            lName)
+        opts   .removeListener(          'negativeCmap',    lName)
+        opts   .removeListener(          'useNegativeCmap', lName)
+        opts   .removeListener(          'cmap',            lName)
+        opts   .removeListener(          'invert',          lName)
+        opts   .removeListener(          'volume',          lName)
+        opts   .removeListener(          'resolution',      lName)
+        opts   .removeListener(          'interpolation',   lName)
+        opts   .removeListener(          'transform',       lName)
         
         if self.__syncListenersRegistered:
             opts.removeSyncChangeListener('volume',        lName)
diff --git a/fsl/fsleyes/tooltips.py b/fsl/fsleyes/tooltips.py
index f5c62a995f1a2249c63b3d2579ef56415a14c8e2..674becd8e8ee22494da8b8d7529b0b6cdb317ca8 100644
--- a/fsl/fsleyes/tooltips.py
+++ b/fsl/fsleyes/tooltips.py
@@ -80,12 +80,12 @@ properties = TypeDict({
                                    'voxels outside of the range are displayed.'
                                    'This option is useful for displaying '
                                    'statistic images.',
-    'VolumeOpts.cmap'               : 'The colour map to use.',
-    'VolumeOpts.negativeCmap'       : 'The colour map to use for negative '
-                                      'values.',
-    'VolumeOpts.enableNegativeCmap' : 'Enable the negative colour map - '
-                                      'this allows positive and negative '
-                                      'values to be coloured independently.',
+    'VolumeOpts.cmap'            : 'The colour map to use.',
+    'VolumeOpts.negativeCmap'    : 'The colour map to use for negative '
+                                   'values.',
+    'VolumeOpts.useNegativeCmap' : 'Enable the negative colour map - '
+                                   'this allows positive and negative '
+                                   'values to be coloured independently.',
     'VolumeOpts.interpolation'   : 'Interpolate the image data for display '
                                    'purposes. You can choose no  '
                                    'interpolation (equivalent to nearest '