diff --git a/CHANGELOG b/CHANGELOG
index 0bd5d1a1ca3a48efe9e24bafb4e576dbd2d813f8..cc90f9e3ad4d06c5e5afb91292c75b8e02869493 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,12 @@
 django-ucamlookup changelog
 =============================
 
+3.0.3 - 09/05/2019
+------------------
+
+- Fixed a problem where validate_groupid_list() failed to validate a group id if it had leading
+zeroes.
+
 3.0.2 - 30/04/2019
 ------------------
 
diff --git a/setup.py b/setup.py
index d63c0e78e895b0cd7aa018ac1f27becbd1fed7c4..d0b08504d51f79691b8fc4a8603569c15db79016 100755
--- a/setup.py
+++ b/setup.py
@@ -7,7 +7,7 @@ setup(
     long_description=open('README.md').read(),
     long_description_content_type='text/markdown',
     url='https://gitlab.developers.cam.ac.uk/uis/devops/django/ucamlookup',
-    version='3.0.2',
+    version='3.0.3',
     license='MIT',
     author='DevOps Division, University Information Services, University of Cambridge',
     author_email='devops@uis.cam.ac.uk',
diff --git a/ucamlookup/tests.py b/ucamlookup/tests.py
index 8c1ec6e6c71c9bb1af64c9bfdf85ec3b9d12a6a8..71cab5e5d437012b2e5d13600771272741a21174 100644
--- a/ucamlookup/tests.py
+++ b/ucamlookup/tests.py
@@ -71,6 +71,8 @@ class UcamLookupTests(TestCase):
                 mock_result.group.title = 'CS Information Systems team'
             elif path == 'api/v1/group/101923':
                 mock_result.group.title = 'UIS Finance team'
+            elif path == 'api/v1/group/001161':
+                mock_result.group.title = 'Members of "Magdalene College".'
             elif path == 'api/v1/group/203840928304982':
                 mock_result.group = None
             elif path == 'api/v1/person/search':
@@ -267,6 +269,12 @@ class UcamLookupTests(TestCase):
         with self.assertRaises(ValidationError):
             validate_groupid_list(["kaskvdkam20e9mciasmdimadf"])
 
+    def test_validate_groupid_list_leading_zeroes(self):
+        """Check that group ids with leading zeroes are correctly validated"""
+        user_list = validate_groupid_list(['001161'])
+        self.assertEqual(user_list[0].lookup_id, '001161')
+        self.assertEqual(user_list[0].name, 'Members of "Magdalene College".')
+
     def test_get_user_lookupgroups(self):
         amc203 = User.objects.create_user(username="amc203")
         groups = get_user_lookupgroups(amc203)
diff --git a/ucamlookup/utils.py b/ucamlookup/utils.py
index 2f20b28ff9dd92dfc7e5b839ea82157decc3d07b..751d6fa133e991288f490f0940568cd5dec1d837 100644
--- a/ucamlookup/utils.py
+++ b/ucamlookup/utils.py
@@ -241,7 +241,7 @@ def validate_groupid_list(groupids):
 
     for groupid in groupids:
         if groupid_re.match(groupid):
-            groups += (get_or_create_group_by_groupid(int(groupid)),)
+            groups += (get_or_create_group_by_groupid(groupid),)
         else:
             raise ValidationError("The list of groups contains an invalid group")