diff --git a/fsl/data/strings.py b/fsl/data/strings.py
index 85d9f5ae9690a1c53bef328c63cb262a6b5cdc73..d2b71fa42fd7f8461677c89ffd3c447f63901af1 100644
--- a/fsl/data/strings.py
+++ b/fsl/data/strings.py
@@ -203,7 +203,7 @@ properties = TypeDict({
 
     'MaskOpts.colour'         : 'Colour',
     'MaskOpts.invert'         : 'Invert',
-    'MaskOpts.threshold'      : 'Threshold',
+    'MaskOpts.clippingRange'  : 'Threshold',
 
     'VectorOpts.displayMode'   : 'Display mode',
     'VectorOpts.xColour'       : 'X Colour',
diff --git a/fsl/fslview/controls/imagedisplaypanel.py b/fsl/fslview/controls/imagedisplaypanel.py
index 8e60c04ad8ba3ad39b605e79550842b66e27394c..1581294fde192b783b29b266a112edf223f8d8ba 100644
--- a/fsl/fslview/controls/imagedisplaypanel.py
+++ b/fsl/fslview/controls/imagedisplaypanel.py
@@ -70,13 +70,12 @@ class ImageDisplayPanel(fslpanel.FSLViewPanel):
         self._lastImage = None
         self._selectedImageChanged()
 
+        self.propSizer.Layout()
         self.Layout()
-
+        
         pSize = self.propSizer.GetMinSize().Get()
         size  = self.sizer    .GetMinSize().Get()
-
-        self.SetMinSize((max(pSize[0], size[0]),
-                         max(pSize[1], size[1]) / 4.0))
+        self.SetMinSize((max(pSize[0], size[0]), max(pSize[1], size[1]) + 20))
 
         
     def destroy(self):
diff --git a/fsl/fslview/displaycontext/display.py b/fsl/fslview/displaycontext/display.py
index ba4e18cee89907bc2e1bff0999237b4fd17bfa44..81367cac7057a5b92e236da03a209902c925caf5 100644
--- a/fsl/fslview/displaycontext/display.py
+++ b/fsl/fslview/displaycontext/display.py
@@ -50,6 +50,10 @@ class DisplayOpts(props.SyncableHasProperties):
         self.imageType  = image.imageType
         self.name       = '{}_{}'.format(type(self).__name__, id(self))
 
+        
+    def destroy(self):
+        pass
+
 
 class Display(props.SyncableHasProperties):
     """
@@ -323,6 +327,9 @@ class Display(props.SyncableHasProperties):
 
         if (self.__displayOpts           is None) or \
            (self.__displayOpts.imageType != self.imageType):
+
+            if self.__displayOpts is not None:
+                self.__displayOpts.destroy()
             
             self.__displayOpts = self.__makeDisplayOpts()
             
diff --git a/fsl/fslview/displaycontext/maskopts.py b/fsl/fslview/displaycontext/maskopts.py
index f6e7a3994f0c7705e0eafdc1fdb89f533384061a..4b011d55e3e8ac9096a0edc4bd8ea3428bd0c742 100644
--- a/fsl/fslview/displaycontext/maskopts.py
+++ b/fsl/fslview/displaycontext/maskopts.py
@@ -18,7 +18,8 @@ class MaskOpts(fsldisplay.DisplayOpts):
 
     colour     = props.Colour()
     invert     = props.Boolean(default=False)
-    threshold  = props.Bounds(
+
+    clippingRange = props.Bounds(
         ndims=1,
         labels=[strings.choices['VolumeOpts.displayRange.min'],
                 strings.choices['VolumeOpts.displayRange.max']]) 
@@ -36,10 +37,15 @@ class MaskOpts(fsldisplay.DisplayOpts):
         dRangeLen    = abs(self.dataMax - self.dataMin)
         dMinDistance = dRangeLen / 10000.0
 
-        self.threshold.setMin(  0, self.dataMin - 0.5 * dRangeLen)
-        self.threshold.setMax(  0, self.dataMax + 0.5 * dRangeLen)
-        self.threshold.setRange(0, 0.1, self.dataMax + 0.1)
-        self.setConstraint('threshold', 'minDistance', dMinDistance)
+        self.clippingRange.xmin = self.dataMin - dMinDistance
+        self.clippingRange.xmax = self.dataMax + dMinDistance
+        
+        # By default, the lowest values
+        # in the image are clipped
+        self.clippingRange.xlo  = self.dataMin + dMinDistance
+        self.clippingRange.xhi  = self.dataMax + dMinDistance 
+
+        self.setConstraint('clippingRange', 'minDistance', dMinDistance)
 
         fsldisplay.DisplayOpts.__init__(self,
                                         image,
diff --git a/fsl/fslview/displaycontext/volumeopts.py b/fsl/fslview/displaycontext/volumeopts.py
index 2a981c93079cd49b87dc89c892a416493c191c7a..9b0a1d0db9d9130dacd91f4bc48f7de7d2e6a5cb 100644
--- a/fsl/fslview/displaycontext/volumeopts.py
+++ b/fsl/fslview/displaycontext/volumeopts.py
@@ -90,6 +90,7 @@ class VolumeOpts(fsldisplay.DisplayOpts):
     _propHelp = _tooltips
 
 
+
     def __init__(self, image, display, imageList, displayCtx, parent=None):
         """Create an :class:`ImageDisplay` for the specified image.
 
@@ -168,6 +169,11 @@ class VolumeOpts(fsldisplay.DisplayOpts):
                                 self.name,
                                 self.displayRangeChanged)
 
+    def destroy(self):
+        self.display.removeListener('brightness',   self.name)
+        self.display.removeListener('contrast',     self.name)
+        self        .removeListener('displayRange', self.name)
+
 
     def briconChanged(self, *a):
         """Called when the ``brightness``/``contrast`` properties of the
diff --git a/fsl/fslview/gl/glmask.py b/fsl/fslview/gl/glmask.py
index 36231c7c0e21a5e99f2db8cc1f6960edf4ddca2a..d347bd496e33ac482d1a4e393b7370bc5ddc2c7b 100644
--- a/fsl/fslview/gl/glmask.py
+++ b/fsl/fslview/gl/glmask.py
@@ -59,7 +59,7 @@ class GLMask(glvolume.GLVolume):
         self.display    .addListener('transform',     lnrName, vertexUpdate)
         self.display    .addListener('alpha',         lnrName, colourUpdate)
         self.displayOpts.addListener('colour',        lnrName, colourUpdate)
-        self.displayOpts.addListener('threshold',     lnrName, colourUpdate)
+        self.displayOpts.addListener('clippingRange', lnrName, colourUpdate)
         self.displayOpts.addListener('invert',        lnrName, colourUpdate)
 
 
@@ -79,7 +79,7 @@ class GLMask(glvolume.GLVolume):
         self.display    .removeListener('volume',        lnrName)
         self.image      .removeListener('data',          lnrName)
         self.displayOpts.removeListener('colour',        lnrName)
-        self.displayOpts.removeListener('threshold',     lnrName)
+        self.displayOpts.removeListener('clippingRange', lnrName)
         self.displayOpts.removeListener('invert',        lnrName) 
 
         
@@ -98,8 +98,8 @@ class GLMask(glvolume.GLVolume):
 
         opts   = self.displayOpts
         colour = opts.colour
-        imin   = opts.threshold[0]
-        imax   = opts.threshold[1]
+        imin   = opts.clippingRange[0]
+        imax   = opts.clippingRange[1]
         
         colour[3] = 1.0
 
diff --git a/fsl/fslview/layouts.py b/fsl/fslview/layouts.py
index 7a97c2a0be4779197f353522f0c8f612ee384650..83c3be965bc586b46b19c03c8150ebaef5a8515e 100644
--- a/fsl/fslview/layouts.py
+++ b/fsl/fslview/layouts.py
@@ -182,14 +182,14 @@ DisplayLayout = props.VGroup(
 VolumeOptsLayout = props.VGroup(
     (widget(VolumeOpts, 'cmap'),
      widget(VolumeOpts, 'invert'),
-     widget(VolumeOpts, 'displayRange',  slider=True),
-     widget(VolumeOpts, 'clippingRange', slider=True)))
+     widget(VolumeOpts, 'displayRange',  slider=True, showLimits=False),
+     widget(VolumeOpts, 'clippingRange', slider=True, showLimits=False)))
 
 
 MaskOptsLayout = props.VGroup(
     (widget(MaskOpts, 'colour'),
      widget(MaskOpts, 'invert'),
-     widget(MaskOpts, 'threshold')))
+     widget(MaskOpts, 'clippingRange', showLimits=False)))
 
 
 VectorOptsLayout = props.VGroup((
diff --git a/fsl/tools/fslview_parseargs.py b/fsl/tools/fslview_parseargs.py
index a484a2135ddc96ad941325b93ee91ef82855f49c..2a3de481dd56f6231b5e89f1456d9dd88b3fd7f5 100644
--- a/fsl/tools/fslview_parseargs.py
+++ b/fsl/tools/fslview_parseargs.py
@@ -128,7 +128,7 @@ OPTIONS = td.TypeDict({
                        'cmap'],
     'MaskOpts'      : ['colour',
                        'invert',
-                       'threshold'],
+                       'clippingRange'],
     'VectorOpts'    : ['displayMode',
                        'xColour',
                        'yColour',
@@ -210,9 +210,9 @@ ARGUMENTS = td.TypeDict({
     'VolumeOpts.cmap'          : ('cm', 'cmap'),
     'VolumeOpts.invert'        : ('ci', 'cmapInvert'),
 
-    'MaskOpts.colour'    : ('co', 'colour'),
-    'MaskOpts.invert'    : ('mi', 'maskInvert'),
-    'MaskOpts.threshold' : ('t',  'threshold'),
+    'MaskOpts.colour'        : ('co', 'colour'),
+    'MaskOpts.invert'        : ('mi', 'maskInvert'),
+    'MaskOpts.clippingRange' : ('t',  'threshold'),
 
     'VectorOpts.displayMode' : ('d',  'displayMode'),
     'VectorOpts.xColour'     : ('xc', 'xColour'),
@@ -280,9 +280,9 @@ HELP = td.TypeDict({
     'VolumeOpts.cmap'          : 'Colour map',
     'VolumeOpts.invert'        : 'Invert colour map',
 
-    'MaskOpts.colour'    : 'Colour',
-    'MaskOpts.invert'    : 'Invert',
-    'MaskOpts.threshold' : 'Threshold',
+    'MaskOpts.colour'        : 'Colour',
+    'MaskOpts.invert'        : 'Invert',
+    'MaskOpts.clippingRange' : 'Threshold',
 
     'VectorOpts.displayMode'  : 'Display mode',
     'VectorOpts.xColour'      : 'X colour',