diff --git a/fsl/utils/image/__init__.py b/fsl/utils/image/__init__.py
index 36bde925ddd642203560caf5ac58ff99a364d386..54dde4b2a7c40e1c97f8b7fcfaa4f86d1b5781b5 100644
--- a/fsl/utils/image/__init__.py
+++ b/fsl/utils/image/__init__.py
@@ -13,4 +13,5 @@ The following modules are available:
    :nosignature
 
    .image.resample
+   .image.roi
 """
diff --git a/fsl/utils/image/roi.py b/fsl/utils/image/roi.py
index 84aee2434a30a6d16d19c3729466ca10845c4185..0b26d79d82fd93c3f2920da30b79a73ef4cb981f 100644
--- a/fsl/utils/image/roi.py
+++ b/fsl/utils/image/roi.py
@@ -11,8 +11,8 @@ a region-of-interest from, or expand the field-of-view of, an :class:`.Image`.
 
 import numpy as np
 
-import fsl.data.image      as fslimage
-import fsl.utils.transform as transform
+import fsl.data.image       as fslimage
+import fsl.transform.affine as affine
 
 
 def _normaliseBounds(shape, bounds):
@@ -97,8 +97,8 @@ def roi(image, bounds):
     # each spatial dimension
     oldaff = image.voxToWorldMat
     offset = [lo for lo, hi in bounds[:3]]
-    offset = transform.scaleOffsetXform([1, 1, 1], offset)
-    newaff = transform.concat(oldaff, offset)
+    offset = affine.scaleOffsetXform([1, 1, 1], offset)
+    newaff = affine.concat(oldaff, offset)
 
     return fslimage.Image(newdata,
                           xform=newaff,
diff --git a/fsl/utils/transform.py b/fsl/utils/transform.py
index e682cc1be1a63e8f8f90fc7394bb006c48c5472c..b3d51afb21f0e5a5a861458d4fde9e2e62daebc2 100644
--- a/fsl/utils/transform.py
+++ b/fsl/utils/transform.py
@@ -16,6 +16,6 @@ from   fsl.transform.flirt  import (flirtMatrixToSform,  # noqa
 
 
 deprecated.warn('fsl.utils.transform',
-                vin='2.2.0',
+                vin='2.4.0',
                 rin='3.0.0',
                 msg='Use the fsl.transform module instead')