diff --git a/fsl/data/model.py b/fsl/data/model.py
index f247b0ac4254041505874bf61047bbefd793dfc1..d286c65720542b81a1d0a7bc4cecea4bcb51aea2 100644
--- a/fsl/data/model.py
+++ b/fsl/data/model.py
@@ -58,7 +58,7 @@ class Model(object):
         """
         """
 
-        if isinstance(data, str):
+        if isinstance(data, basestring):
             infile = data
             data, lengths, indices = loadVTKPolydataFile(infile)
 
@@ -79,6 +79,15 @@ class Model(object):
         self.indices  = indices
 
 
+    def __repr__(self):
+        return '{}({}, {})'.format(type(self).__name__,
+                                   self.name,
+                                   self.dataSource)
+
+    def __str__(self):
+        return self.__repr__()
+
+
     def getBounds(self):
         return (self.vertices.min(axis=0),
                 self.vertices.max(axis=0))
diff --git a/fsl/fslview/displaycontext/modelopts.py b/fsl/fslview/displaycontext/modelopts.py
index 68bc0c69e860d638b92d6641d674f35bda09334d..d838362f33eb7eff4c035bff3dcecf98113e4337 100644
--- a/fsl/fslview/displaycontext/modelopts.py
+++ b/fsl/fslview/displaycontext/modelopts.py
@@ -44,6 +44,10 @@ class ModelOpts(fsldisplay.DisplayOpts):
         # saturated colour
         colour      = colourmaps.randomBrightColour()
         self.colour = np.concatenate((colour, [1.0]))
+
+        nounbind = kwargs.get('nounbind', [])
+        nounbind.extend(['refImage', 'coordSpace', 'transform'])
+        kwargs['nounbind'] = nounbind
  
         # But create that colour before
         # base class initialisation, as
@@ -52,7 +56,7 @@ class ModelOpts(fsldisplay.DisplayOpts):
         # one we generated above.
         fsldisplay.DisplayOpts.__init__(self, *args, **kwargs)
 
-        self.__oldRefImage = None
+        self.__oldRefImage = 'none'
 
         self.overlayList.addListener('overlays',
                                      self.name,
@@ -77,6 +81,8 @@ class ModelOpts(fsldisplay.DisplayOpts):
         If a :attr:`refImage` is selected, it is returned. Otherwise,``None``
         is returned.
         """
+        if self.refImage == 'none':
+            return None
         return self.refImage
             
 
@@ -99,7 +105,7 @@ class ModelOpts(fsldisplay.DisplayOpts):
 
     def getCoordSpaceTransform(self):
 
-        if self.refImage is None:
+        if self.refImage == 'none':
             return None
 
         if self.coordSpace == self.transform:
@@ -112,13 +118,13 @@ class ModelOpts(fsldisplay.DisplayOpts):
 
     def __refImageChanged(self, *a):
         
-        if self.__oldRefImage is not None:
+        if self.__oldRefImage != 'none':
             opts = self.displayCtx.getOpts(self.__oldRefImage)
             self.unbindProps('transform', opts)
 
         self.__oldRefImage = self.refImage
         
-        if self.refImage is not None:
+        if self.refImage != 'none':
             opts = self.displayCtx.getOpts(self.refImage)
             self.bindProps('transform', opts)
             
@@ -139,7 +145,7 @@ class ModelOpts(fsldisplay.DisplayOpts):
             self.overlayList.removeListener('overlays', self.name)
             return
 
-        imgOptions = [None]
+        imgOptions = ['none']
         imgLabels  = [strings.choices['ModelOpts.refImage.none']]
 
         for overlay in overlays:
@@ -159,4 +165,4 @@ class ModelOpts(fsldisplay.DisplayOpts):
         imgProp.setChoices(imgOptions, imgLabels, self)
 
         if imgVal in overlays: self.refImage = imgVal
-        else:                  self.refImage = None
+        else:                  self.refImage = 'none'
diff --git a/fsl/fslview/gl/glmodel.py b/fsl/fslview/gl/glmodel.py
index dfd3f02e7c03645cee467e2032c9b19cf2a4cdbf..97fce55e2e4d8588b9fd953d139186619a532f4a 100644
--- a/fsl/fslview/gl/glmodel.py
+++ b/fsl/fslview/gl/glmodel.py
@@ -41,11 +41,10 @@ class GLModel(globject.GLObject):
         vertices = self.overlay.vertices
         indices  = self.overlay.indices
 
-        if self.opts.refImage is not None:
-            xform = self.opts.getCoordSpaceTransform()
+        xform = self.opts.getCoordSpaceTransform()
 
-            if xform is not None:
-                vertices = transform.transform(vertices, xform)
+        if xform is not None:
+            vertices = transform.transform(vertices, xform)
 
         self.vertices = np.array(vertices, dtype=np.float32)
         self.indices  = np.array(indices,  dtype=np.uint32)
diff --git a/fsl/tools/fslview_parseargs.py b/fsl/tools/fslview_parseargs.py
index bed9394c02a354655ce236c6bf69ba08cb0774c4..858af47c23487fd439669e892969bc48b6a8fa86 100644
--- a/fsl/tools/fslview_parseargs.py
+++ b/fsl/tools/fslview_parseargs.py
@@ -844,7 +844,6 @@ def generateSceneArgs(overlayList, displayCtx, sceneOpts):
 
     args = []
 
-
     args += ['--{}'.format(ARGUMENTS['Main.scene'][1])]
     if   isinstance(sceneOpts, fsldisplay.OrthoOpts):    args += ['ortho']
     elif isinstance(sceneOpts, fsldisplay.LightBoxOpts): args += ['lightbox']
@@ -886,11 +885,11 @@ def applyOverlayArgs(args, overlayList, displayCtx, **kwargs):
     :arg overlayList: An :class:`.OverlayList` instance, to which the
                       overlays should be added.
     
-    :arg displayCtx:  A :class:`~fsl.fslview.displaycontext.DisplayContext`
-                      instance, which manages the scene and overlay display.
+    :arg displayCtx:  A :class:`.DisplayContext` instance, which manages the
+                      scene and overlay display.
     
-    :arg kwargs:     Passed through to the
-                     :func:`fsl.data.imageio.loadImages` function.
+    :arg kwargs:      Passed through to the :func:`.Overlay.loadOverlays`
+                      function.
     """
 
     paths    = [o.overlay for o in args.overlays]