diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index d4920d3747b9171938e5fe2a1a53d246770e28d8..63c0583ae2821ded824e81d95ec13aedc728d8ab 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -2,6 +2,20 @@ This document contains the ``fslpy`` release history in reverse chronological
 order.
 
 
+1.10.3 (Sunday September 9th 2018)
+----------------------------------
+
+
+Added
+^^^^^
+
+
+* The :func:`.parseVersionString` function accepts (and ignores) `local
+  version identifer
+  <https://www.python.org/dev/peps/pep-0440/#local-version-identifiers>`_
+  strings.
+
+
 1.10.2 (Friday September 7th 2018)
 ----------------------------------
 
diff --git a/fsl/version.py b/fsl/version.py
index d859a0c63a8fde3bdc63a4352d3439d76233639a..4d8381b9c69a4fe47c727c14fe3cbb762d500563 100644
--- a/fsl/version.py
+++ b/fsl/version.py
@@ -31,8 +31,14 @@ is compatible with PEP 440 (https://www.python.org/dev/peps/pep-0440/):
     which primarily involve bug-fixes and minor changes.
 
 
-The sole exception to the above convention are development versions, which end
-in ``'.dev'``.
+The sole exceptions to the above convention are:
+
+  - development versions, where the point release number is followed by a
+    development release identifier of the form ``'.devN'``, where ``N``
+    denotes a specific development release.
+
+  - Builds, where the version number ends in ``'+buildN'``, where ``N``
+    denotes a specific build.
 """
 
 
@@ -53,7 +59,9 @@ def parseVersionString(versionString):
     An error is raised if the ``versionString`` is invalid.
     """
 
-    components = versionString.split('.')
+    # Ignore build if present
+    versionString = versionString.split('+')[0]
+    components    = versionString.split('.')
 
     # Truncate after three elements -
     # a development (unreleased version
@@ -80,6 +88,8 @@ def parseVersionString(versionString):
 def compareVersions(v1, v2, ignorePoint=False):
     """Compares the given ``fslpy`` version numbers.
 
+    Both developemnt versions and build numbers are ignored in the comparison.
+
     :arg v1:          Version number to compare
     :arg v2:          Version number to compare
     :arg ignorePoint: Defaults to ``False``. If ``True``, the point release
diff --git a/tests/test_version.py b/tests/test_version.py
index f2e47ba7b8856572fafd9452dc233549fa69815e..b52437f1894f159eb1643ce5279278d7de3264bf 100644
--- a/tests/test_version.py
+++ b/tests/test_version.py
@@ -18,12 +18,17 @@ import fsl.version as fslversion
 def test_parseVersionString():
 
     tests = [
-        ('0.0.0',         [0,   0, 0]),
-        ('0.0.10',        [0,   0, 10]),
-        ('10.0.10',       [10,  0, 10]),
-        ('10.10.10',      [10, 10, 10]),
-        ('10.10.10.dev',  [10, 10, 10]),
-        ('10.10.10.dev0', [10, 10, 10]),
+        ('0.0.0',                [0,   0, 0]),
+        ('0.0.10',               [0,   0, 10]),
+        ('10.0.10',              [10,  0, 10]),
+        ('10.10.10',             [10, 10, 10]),
+        ('10.10.10.dev',         [10, 10, 10]),
+        ('10.10.10.dev0',        [10, 10, 10]),
+        ('10.10.10.dev0',        [10, 10, 10]),
+        ('10.10.10+build1',      [10, 10, 10]),
+        ('10.10.10+buildB',      [10, 10, 10]),
+        ('10.10.10.dev0+build4', [10, 10, 10]),
+
 
         # old-style hotfix release numbers
         ('10.10.10a',    [10, 10, 10]),
@@ -45,6 +50,7 @@ def test_parseVersionString_bad():
         'a.5.5',
         '5.5.a',
         '5.5.a',
+        '5.5+build0',
     ]
 
     for test in tests: