diff --git a/fsl/data/model.py b/fsl/data/model.py
index 542ed38d65a4ad900823f198ca304d1ae417b056..1598f73db4169aaaf6734f7cac3bb256af15c72c 100644
--- a/fsl/data/model.py
+++ b/fsl/data/model.py
@@ -54,7 +54,6 @@ def loadVTKPolydataFile(infile):
 
         indexOffset        += polygonLengths[i]
 
-
     return vertices, polygonLengths, indices
     
 
@@ -84,6 +83,9 @@ class Model(object):
         self.vertices = np.array(data, dtype=np.float32)
         self.indices  = indices
 
+        self.__loBounds = self.vertices.min(axis=0)
+        self.__hiBounds = self.vertices.max(axis=0)
+
         log.memory('{}.init ({})'.format(type(self).__name__, id(self)))
 
         
@@ -101,5 +103,4 @@ class Model(object):
 
 
     def getBounds(self):
-        return (self.vertices.min(axis=0),
-                self.vertices.max(axis=0))
+        return (self.__loBounds, self.__hiBounds)
diff --git a/fsl/fslview/displaycontext/modelopts.py b/fsl/fslview/displaycontext/modelopts.py
index b8089fb202db66933f65a3d96eb05d60e442feaf..78fd622b49f97c9502ba1c9523a29e24bd4d4ef9 100644
--- a/fsl/fslview/displaycontext/modelopts.py
+++ b/fsl/fslview/displaycontext/modelopts.py
@@ -95,10 +95,8 @@ class ModelOpts(fsldisplay.DisplayOpts):
     
     def getCoordSpaceTransform(self):
 
-        if self.refImage == 'none':
-            return None
-
-        if self.coordSpace == self.transform:
+        if self.refImage == 'none' or \
+           self.coordSpace == self.transform:
             return None
 
         opts = self.displayCtx.getOpts(self.refImage)
@@ -147,7 +145,7 @@ class ModelOpts(fsldisplay.DisplayOpts):
 
             if self.refImage != 'none':
                 refOpts = self.displayCtx.getOpts(self.refImage)
-                newLoc  = refOpts.transformDisplayLocation(propName, oldLoc)
+                newLoc  = refOpts.transformDisplayLocation(oldLoc)
 
         return newLoc
 
@@ -167,7 +165,7 @@ class ModelOpts(fsldisplay.DisplayOpts):
         self.__lastPropChanged = 'refImage'
 
         if self.__oldRefImage != 'none' and \
-           self.__oldRefImage in self._overlayList:
+           self.__oldRefImage in self.overlayList:
             
             opts = self.displayCtx.getOpts(self.__oldRefImage)
             self.unbindProps('transform', opts)
@@ -192,7 +190,9 @@ class ModelOpts(fsldisplay.DisplayOpts):
         xform  = self.getCoordSpaceTransform()
 
         if xform is not None:
-            lohi   = transform.transform([lo, hi], xform)
+
+            lohi = transform.transform([lo, hi], xform)
+            lohi.sort(axis=0)
             lo, hi = lohi[0, :], lohi[1, :]
 
         self.bounds = [lo[0], hi[0], lo[1], hi[1], lo[2], hi[2]]
diff --git a/fsl/fslview/displaycontext/volumeopts.py b/fsl/fslview/displaycontext/volumeopts.py
index bed9dcf7722d00b937f07511e25a40d78460102a..ce63af66b6a7661c4c800a4c58bf61ecb73a3267 100644
--- a/fsl/fslview/displaycontext/volumeopts.py
+++ b/fsl/fslview/displaycontext/volumeopts.py
@@ -184,6 +184,9 @@ class ImageOpts(fsldisplay.DisplayOpts):
     def transformDisplayLocation(self, oldLoc):
 
         lastVal = self.getLastValue('transform')
+
+        if lastVal is None:
+            lastVal = self.transform
         
         # Calculate the image world location using the
         # old display<-> world transform, then transform
diff --git a/fsl/fslview/gl/glmodel.py b/fsl/fslview/gl/glmodel.py
index 187667583afecec287a9e8e759196457ea57d382..75b9be84225ad1a33528c79840f9c3dadc6e1dae 100644
--- a/fsl/fslview/gl/glmodel.py
+++ b/fsl/fslview/gl/glmodel.py
@@ -229,8 +229,9 @@ class GLModel(globject.GLObject):
         # the cross-section mask will not be created
         # correctly.
         direction = [gl.GL_INCR, gl.GL_DECR]
-        if np.any(hi < lo): faceOrder = [gl.GL_FRONT, gl.GL_BACK]
-        else:               faceOrder = [gl.GL_BACK,  gl.GL_FRONT]
+
+        if np.any(np.array(hi) < 0.0): faceOrder = [gl.GL_FRONT, gl.GL_BACK]
+        else:                          faceOrder = [gl.GL_BACK,  gl.GL_FRONT]
         
         for face, direction in zip(faceOrder, direction):