diff --git a/doc/version_from_git.py b/doc/version_from_git.py
index 6392ad7732848485cf1cfd6aa919a208ce0a5b43..67cbcb3f8728b1596f25410818057e565a068427 100644
--- a/doc/version_from_git.py
+++ b/doc/version_from_git.py
@@ -1,4 +1,5 @@
 import subprocess
+from distutils.version import StrictVersion
 
 
 def version_number_from_git(tag_prefix='release/', sha_length=10, version_format="{version}.dev{commits}+{sha}"):
@@ -15,7 +16,9 @@ def version_number_from_git(tag_prefix='release/', sha_length=10, version_format
         parsed_version[-1] += 1
         return '.'.join(str(i) for i in parsed_version)
 
-    latest_release = get_released_versions()[-1]
+    version_strings = get_released_versions()
+    version_strings.sort(key=StrictVersion)
+    latest_release = version_strings[-1]
     commits_since_tag = subprocess.getoutput('git rev-list {}..HEAD --count'.format(tag_from_version(latest_release)))
     sha = subprocess.getoutput('git rev-parse HEAD')[:sha_length]
     is_dirty = len(subprocess.getoutput("git status --untracked-files=no -s")) > 0