diff --git a/setup.py b/setup.py
index 2e21d20db1105ff632eb41b5db5c0eb2ec8dc9ff..58d6cc3d11db24c4dbec2e225e46c6d40635ff73 100644
--- a/setup.py
+++ b/setup.py
@@ -1,5 +1,6 @@
 from setuptools import setup, find_packages
 import subprocess
+from distutils.version import StrictVersion
 
 
 def version_number_from_git(tag_prefix='release/', sha_length=10, version_format="{version}.dev{commits}+{sha}"):
@@ -16,7 +17,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