diff --git a/fsl/fslview/gl/lightboxcanvas.py b/fsl/fslview/gl/lightboxcanvas.py
index 04576f3d01aaa947fc0fd70cc0d8cacb67f81e5f..b8cea3c3dc01951435514fd895a846f4a45394b6 100644
--- a/fsl/fslview/gl/lightboxcanvas.py
+++ b/fsl/fslview/gl/lightboxcanvas.py
@@ -35,7 +35,7 @@ class LightBoxCanvas(slicecanvas.SliceCanvas):
     """
 
     
-    ncols = props.Int(clamped=True, minval=1, maxval=15, default=5)
+    ncols = props.Int(clamped=True, minval=1, maxval=20, default=5)
     """This property controls the number of 
     slices to be displayed on a single row.
     """
@@ -250,9 +250,20 @@ class LightBoxCanvas(slicecanvas.SliceCanvas):
 
         if self._nslices == 0 or self._totalRows == 0:
             return
-
-        self.setConstraint('nrows',  'maxval', self._totalRows)
-        self.setConstraint('topRow', 'maxval', self._totalRows - self.nrows)
+        
+        # All slices are going to be displayed, so
+        # we'll 'disable' the topRow property
+        if self._totalRows < self.nrows:
+            self.setConstraint('topRow', 'minval', 0)
+            self.setConstraint('topRow', 'maxval', 0)
+
+        # nrows slices are going to be displayed,
+        # and the topRow property can be used to
+        # scroll through all available rows.
+        else:
+            self.setConstraint('topRow',
+                               'maxval',
+                               self._totalRows - self.nrows)
 
 
     def _zPosChanged(self, *a):