diff --git a/boto-2.40.0-multi-vpc-zone.patch b/boto-2.40.0-multi-vpc-zone.patch
new file mode 100644
index 0000000..90c9b40
--- /dev/null
+++ b/boto-2.40.0-multi-vpc-zone.patch
@@ -0,0 +1,72 @@
+Index: boto-2.40.0/boto/route53/connection.py
+===================================================================
+--- boto-2.40.0.orig/boto/route53/connection.py
++++ boto-2.40.0/boto/route53/connection.py
+@@ -152,8 +152,8 @@ class Route53Connection(AWSAuthConnectio
+ raise exception.DNSServerError(response.status,
+ response.reason,
+ body)
+- e = boto.jsonresponse.Element(list_marker='NameServers',
+- item_marker=('NameServer',))
++ e = boto.jsonresponse.Element(list_marker=('NameServers', 'VPCs'),
++ item_marker=('NameServer', 'VPC'))
+ h = boto.jsonresponse.XmlHandler(e, None)
+ h.parse(body)
+ return e
+Index: boto-2.40.0/tests/integration/route53/test_zone.py
+===================================================================
+--- boto-2.40.0.orig/tests/integration/route53/test_zone.py
++++ boto-2.40.0/tests/integration/route53/test_zone.py
+@@ -186,6 +186,12 @@ class TestRoute53PrivateZone(unittest.Te
+ vpc_id=self.test_vpc.id,
+ vpc_region='us-east-1')
+
++ def test_get_hosted_zone_for_private_zone(self):
++ self.get_hosted_zone = self.route53.get_hosted_zone_by_name(self.base_domain)
++ self.assertEquals(len(self.get_hosted_zone['GetHostedZoneResponse']['VPCs']), 1)
++ self.assertEquals(self.get_hosted_zone['GetHostedZoneResponse']['VPCs'][0]['VPCRegion'], 'us-east-1')
++ self.assertEquals(self.get_hosted_zone['GetHostedZoneResponse']['VPCs'][0]['VPCId'], self.test_vpc.id)
++
+ @classmethod
+ def tearDownClass(self):
+ if self.zone is not None:
+Index: boto-2.40.0/tests/unit/route53/test_connection.py
+===================================================================
+--- boto-2.40.0.orig/tests/unit/route53/test_connection.py
++++ boto-2.40.0/tests/unit/route53/test_connection.py
+@@ -313,6 +313,16 @@ class TestGetHostedZoneRoute53(AWSMockSe
+ ns-1000.awsdns-00.co.uk
+
+
++
++
++ eu-west-1
++ vpc-12345
++
++
++ us-west-1
++ vpc-78900
++
++
+
+ """
+
+@@ -330,6 +340,18 @@ class TestGetHostedZoneRoute53(AWSMockSe
+ ['DelegationSet']['NameServers'],
+ ['ns-1000.awsdns-40.org', 'ns-200.awsdns-30.com',
+ 'ns-900.awsdns-50.net', 'ns-1000.awsdns-00.co.uk'])
++ self.assertEqual(response['GetHostedZoneResponse']
++ ['VPCs'][0]['VPCRegion'],
++ 'eu-west-1')
++ self.assertEqual(response['GetHostedZoneResponse']
++ ['VPCs'][0]['VPCId'],
++ 'vpc-12345')
++ self.assertEqual(response['GetHostedZoneResponse']
++ ['VPCs'][1]['VPCRegion'],
++ 'us-west-1')
++ self.assertEqual(response['GetHostedZoneResponse']
++ ['VPCs'][1]['VPCId'],
++ 'vpc-78900')
+
+
+ @attr(route53=True)
diff --git a/python-boto.spec b/python-boto.spec
index ba17793..cdc3267 100644
--- a/python-boto.spec
+++ b/python-boto.spec
@@ -56,6 +56,10 @@ Patch5: boto-2.40.0-aws-exec-read.patch
# https://github.com/boto/boto/pull/3131
Patch6: boto-2.40.0-instance-attributes.patch
+# Fix multi-VPC hosted zone parsing
+# https://github.com/boto/boto/pull/2882
+Patch7: boto-2.40.0-multi-vpc-zone.patch
+
BuildRequires: python2-devel
BuildRequires: python-setuptools
BuildRequires: python-six
@@ -141,6 +145,7 @@ cloud systems like Eucalyptus, OpenStack and Open Nebula.
%patch4 -p1
%patch5 -p1
%patch6 -p1
+%patch7 -p1
rm -r boto/vendored
@@ -206,6 +211,7 @@ mv $RPM_BUILD_ROOT/%{_bindir} examples
- Fixed max_retry_delay config option
- Added aws-exec-read to S3's canned ACL list
- Added new instance attributes
+- Fixed multi-VPC hosted zone parsing
* Mon May 23 2016 Jon Ciesla - 2.40.0-1
- 2.40.0.