diff --git a/fsl/data/utils.py b/fsl/data/utils.py
index d902dc18a2b77c753c7d43f09d70398ebb25b71a..13aae313b3ea4d1dc927d7b1fffd029ccaf7f83c 100644
--- a/fsl/data/utils.py
+++ b/fsl/data/utils.py
@@ -84,7 +84,19 @@ def makeWriteable(array):
     is not possible, a copy is created and returned.
     """
     try:
+        # Versions of numpy prior to 1.16 will
+        # happily mutate a bytes array, whcih
+        # is supposed to be immutable. So if
+        # is the case, let's force a copy.
+        if isinstance(array.base, bytes):
+            raise ValueError()
+
+        # In versions of numpy 1.16 and newer,
+        # setting the WRITEABLE flag on an
+        # immutable array will cause a
+        # ValueError to be raised
         array.flags['WRITEABLE'] = True
+
     except ValueError:
         array = np.array(array)
     return array