diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..c778784
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,3 @@
+build
+dist
+ipaddress.egg-info
diff --git a/.travis.yml b/.travis.yml
index ddc269c..72393f7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,3 +1,4 @@
+dist: "trusty"
 language: python
 python:
   - "2.6"
@@ -7,11 +8,11 @@
   - "pypy"
   - "pypy3"
 install: 
-  - "pip install flake8"
+  - "if python --version 2>&1 | grep -q ' 2\.7\.'; then pip install flake8 ; fi"
 script:
   - "make test"
-  - "make lint"
+  - "make lint-if-2.7"
 notifications:
   email:
     - phihag@phihag.de
-sudo: false
\ No newline at end of file
+sudo: false
diff --git a/METADATA b/METADATA
index b1bd95f..9377dc3 100644
--- a/METADATA
+++ b/METADATA
@@ -1,7 +1,5 @@
 name: "ipaddress"
-description:
-    "Port of the 3.3+ ipaddress module to 2.6, 2.7, 3.2"
-
+description: "Port of the 3.3+ ipaddress module to 2.6, 2.7, 3.2"
 third_party {
   url {
     type: HOMEPAGE
@@ -11,7 +9,11 @@
     type: GIT
     value: "https://github.com/phihag/ipaddress"
   }
-  version: "v1.0.22"
-  last_upgrade_date { year: 2019 month: 5 day: 2 }
+  version: "v1.0.23"
   license_type: NOTICE
+  last_upgrade_date {
+    year: 2019
+    month: 10
+    day: 17
+  }
 }
diff --git a/Makefile b/Makefile
index e799f11..604fd05 100644
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,10 @@
 	python test_ipaddress.py
 
 lint:
-	@(python --version 2>&1 | grep -q ' 2\.6\.') || flake8 ipaddress.py test_ipaddress.py
+	flake8 *.py
+
+lint-if-2.7:
+	@if python --version 2>&1 | grep -q ' 2\.7\.'; then $(MAKE) lint ; fi
 
 pypi:
 	python setup.py sdist bdist_wheel upload
@@ -17,11 +20,26 @@
 	git add ipaddress.py setup.py
 	git commit -m "release ${VERSION}"
 	git tag "v${VERSION}"
+	git push
 	git push --tags
 	$(MAKE) pypi
 
+docker-test-all: docker-test-2.6 docker-test-2.7 docker-test-3.2 docker-test-3.3
+
+docker-test-2.6:
+	docker build -t ipaddress-python2.6 . -f test-python2.6.Dockerfile
+
+docker-test-2.7:
+	docker build -t ipaddress-python2.7 . -f test-python2.7.Dockerfile
+
+docker-test-3.2:
+	docker build -t ipaddress-python3.2 . -f test-python3.2.Dockerfile
+
+docker-test-3.3:
+	docker build -t ipaddress-python3.3 . -f test-python3.3.Dockerfile
+
 clean:
 	rm -rf -- build dist ipaddress.egg-info
 
-.PHONY: default test clean pypi lint
+.PHONY: default test clean pypi lint docker-test-all docker-test-2.6 docker-test-2.7 docker-test-3.2 docker-test-3.3 lint-if-2.7
 
diff --git a/OTHER_BACKPORTS.md b/OTHER_BACKPORTS.md
index 67f57ac..c9a8f9b 100644
--- a/OTHER_BACKPORTS.md
+++ b/OTHER_BACKPORTS.md
@@ -1,16 +1,16 @@
 There are three backports of ipaddress in the wild:
 
-phihag/ipaddress ([ipaddress on PyPi](https://pypi.python.org/pypi/ipaddress)):
+phihag/ipaddress ([ipaddress on PyPI](https://pypi.org/project/ipaddress/)):
 > First commit:  2013-02-03<br>
 > First release: 2013-02-04<br>
-> Latest commit: 2017-01-11
+> Latest commit: 2018-06-10 (as of June 2018)
 
-kwi/py2-ipaddress ([py2-ipaddress on PyPi](https://pypi.python.org/pypi/py2-ipaddress))
+kwi/py2-ipaddress ([py2-ipaddress on PyPI](https://pypi.org/project/py2-ipaddress/))
 > First commit:  2013-08-08<br>
 > First release: 2013-08-08<br>
 > Latest commit: 2015-07-14
 
-sk-/backport_ipaddress ([backport_ipaddress on PyPi](https://pypi.python.org/pypi/backport_ipaddress))
+sk-/backport_ipaddress ([backport_ipaddress on PyPI](https://pypi.org/project/backport_ipaddress/))
 > First commit:  2014-08-15<br>
 > First release: 2014-09-01<br>
 > Latest commit: 2014-08-16 (!)
@@ -19,7 +19,7 @@
 
 sk-/backport_ipaddress is a fork of kwi/py2-ipaddress. As you can see from the above dates, the project has basically never been updated after being released. So I'm just going to focus on my ipaddress vs py2-ipaddress. Mine has nearly 40x the download count.
 
-As you can also see from the above stats, py2-ipaddress has not been updated for over a year. Sure, it's a backport and thus does not necessitate frequent updating, but for instance cPython has fixed a couple of bugs just recently, and they are certainly still present in py2-ipaddress. In contrast, I can and do regularly sync. Upstream cPython code is in the upstream branch and just gets merged, so you can sync if you need the bleeding-edge ipaddress code (but a pull request or issue would be fine too if that's what you need).
+As you can also see from the above stats, py2-ipaddress has not been updated for over two years. Sure, it's a backport and thus does not necessitate frequent updating, but for instance cPython has fixed a couple of bugs just recently, and they are certainly still present in py2-ipaddress. In contrast, I can and do regularly sync. Upstream cPython code is in the upstream branch and just gets merged, so you can sync if you need the bleeding-edge ipaddress code (but a pull request or issue would be fine too if that's what you need).
 
 But I don't think it's even necessary to argument from metadata, when the technical facts speak for themselves:
 
diff --git a/README.md b/README.md
index 77471c6..0a12bc0 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,9 @@
 
 Python 3.3+'s [ipaddress](http://docs.python.org/dev/library/ipaddress) for Python 2.6, 2.7, 3.2.
 
-Note that as in Python 3.3+ you must use character strings and not byte strings for textual IP address representations:
+This repository tracks the latest version from cpython, e.g. ipaddress from cpython 3.8 as of writing.
+
+Note that just like in Python 3.3+ you must use character strings and not byte strings for textual IP address representations:
 
 ```python
 >>> from __future__ import unicode_literals
diff --git a/ipaddress.py b/ipaddress.py
index f2d0766..3e6f9e4 100644
--- a/ipaddress.py
+++ b/ipaddress.py
@@ -14,7 +14,7 @@
 import itertools
 import struct
 
-__version__ = '1.0.22'
+__version__ = '1.0.23'
 
 # Compatibility functions
 _compat_int_types = (int,)
@@ -1103,7 +1103,8 @@
         try:
             # Always false if one is v4 and the other is v6.
             if a._version != b._version:
-                raise TypeError("%s and %s are not of the same version" (a, b))
+                raise TypeError(
+                    "%s and %s are not of the same version" % (a, b))
             return (b.network_address <= a.network_address and
                     b.broadcast_address >= a.broadcast_address)
         except AttributeError:
diff --git a/setup.py b/setup.py
index eba10de..7e99280 100644
--- a/setup.py
+++ b/setup.py
@@ -8,7 +8,7 @@
 
 settings = {
     'name': 'ipaddress',
-    'version': '1.0.22',
+    'version': '1.0.23',
     'description': 'IPv4/IPv6 manipulation library',
     'long_description': 'Port of the 3.3+ ipaddress module to 2.6, 2.7, 3.2',
     'author': 'Philipp Hagemeister',
diff --git a/test-python2.6.Dockerfile b/test-python2.6.Dockerfile
new file mode 100644
index 0000000..5e16329
--- /dev/null
+++ b/test-python2.6.Dockerfile
@@ -0,0 +1,8 @@
+FROM lovato/python-2.6.6
+# Dockerfile to run tests under python2.6
+
+# docker build -t ipaddress-python2.6 . -f test-python2.6.Dockerfile
+
+ADD . .
+RUN python test_ipaddress.py
+CMD python test_ipaddress.py
diff --git a/test-python2.7.Dockerfile b/test-python2.7.Dockerfile
new file mode 100644
index 0000000..9c58f6b
--- /dev/null
+++ b/test-python2.7.Dockerfile
@@ -0,0 +1,11 @@
+FROM python:2.7-alpine
+# Dockerfile to run tests under python2.7
+
+# docker build -t ipaddress-python2.7 . -f test-python2.7.Dockerfile
+RUN apk add make
+RUN pip install flake8
+
+ADD . .
+RUN python test_ipaddress.py
+RUN make lint
+CMD python test_ipaddress.py
diff --git a/test-python3.2.Dockerfile b/test-python3.2.Dockerfile
new file mode 100644
index 0000000..56d2b46
--- /dev/null
+++ b/test-python3.2.Dockerfile
@@ -0,0 +1,8 @@
+FROM python:3.2-slim
+# Dockerfile to run tests under python3.2
+
+# docker build -t ipaddress-python3.2 . -f test-python3.2.Dockerfile
+
+ADD . .
+RUN python test_ipaddress.py
+CMD python test_ipaddress.py
diff --git a/test-python3.3.Dockerfile b/test-python3.3.Dockerfile
new file mode 100644
index 0000000..87c504e
--- /dev/null
+++ b/test-python3.3.Dockerfile
@@ -0,0 +1,8 @@
+FROM python:3.3-alpine
+# Dockerfile to run tests under python3.3
+
+# docker build -t ipaddress-python3.3 . -f test-python3.3.Dockerfile
+
+ADD . .
+RUN python test_ipaddress.py
+CMD python test_ipaddress.py
diff --git a/test_ipaddress.py b/test_ipaddress.py
index 2cbe36a..a1721b8 100644
--- a/test_ipaddress.py
+++ b/test_ipaddress.py
@@ -862,9 +862,9 @@
         self.ipv6_network = ipaddress.IPv6Network('2001:658:22a:cafe::/64')
 
     def testRepr(self):
-        self.assertTrue(re.match("IPv4Interface\(u?'1.2.3.4/32'\)",
+        self.assertTrue(re.match(r"IPv4Interface\(u?'1.2.3.4/32'\)",
                         repr(ipaddress.IPv4Interface('1.2.3.4'))))
-        self.assertTrue(re.match("IPv6Interface\(u?'::1/128'\)",
+        self.assertTrue(re.match(r"IPv6Interface\(u?'::1/128'\)",
                         repr(ipaddress.IPv6Interface('::1'))))
 
     # issue #16531: constructing IPv4Network from an (address, mask) tuple
@@ -1014,7 +1014,8 @@
                          [(ip1, ip3)])
         self.assertEqual(128, ipaddress._count_righthand_zero_bits(0, 128))
         self.assertTrue(
-            re.match("IPv4Network\(u?'1.2.3.0/24'\)", repr(self.ipv4_network)))
+            re.match(r"IPv4Network\(u?'1.2.3.0/24'\)",
+                     repr(self.ipv4_network)))
 
     def testMissingAddressVersion(self):
         class Broken(ipaddress._BaseAddress):
@@ -2161,7 +2162,7 @@
 
             expected_regex = self.expected_regex
             if not expected_regex.search(str(exc_value)):
-                raise AssertionError('"{}" does not match "{}"'.format(
+                raise AssertionError('"{0}" does not match "{1}"'.format(
                     expected_regex.pattern, str(exc_value)))
             return True
 
@@ -2212,7 +2213,7 @@
         self.assertEqual(ipaddress._compat_bit_length(4), 3)
 
 
-class SingleIssuesTest(unittest.TestCase):
+class SingleIssuesTest(BaseTestCase):
     # https://github.com/phihag/ipaddress/issues/14
     def test_issue_14(self):
         self.assertTrue(ipaddress.ip_address('127.0.0.1').is_private)
@@ -2225,6 +2226,12 @@
         self.assertTrue(net2.subnet_of(net1))
         self.assertFalse(net2.supernet_of(net1))
 
+    def test_issue_48(self):
+        v6net = ipaddress.ip_network('::/0')
+        v4net = ipaddress.ip_network('1.2.3.0/24')
+        with self.assertRaisesRegex(TypeError, r'are not of the same version'):
+            v6net.subnet_of(v4net)
+
 
 if __name__ == '__main__':
     unittest.main()
