diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 7089e91b85792f7a94adde3dbd1dce993be5e56d..230bf25f33ff3e7070dfed5bbf7363ac8fc5489b 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -2,6 +2,30 @@ This document contains the ``fslpy`` release history in reverse chronological
 order.
 
 
+2.3.0 (Under development)
+-------------------------
+
+
+Added
+^^^^^
+
+
+* New :meth:`.LabelAtlas.get` and :meth:`ProbabilisticAtlas.get` methods,
+  which return an :class:`.Image` for a specific region.
+* The :meth:`.AtlasDescription.find` method also now a ``name`` parameter,
+  allowing labels to be looked up by name.
+* New :meth:`.FileTree.defines` and :meth:`.FileTree.on_disk` methods, to
+  replace the :func:`.FileTree.exists` method.
+
+
+Fixed
+^^^^^
+
+
+* The :func:`.makeWriteable` function will always create a copy of an
+  ``array`` if its base is a ``bytes`` object.
+
+
 2.2.0 (Wednesday May 8th 2019)
 ------------------------------
 
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