diff --git a/meta-networking/recipes-connectivity/ufw/ufw/setuptools.patch b/meta-networking/recipes-connectivity/ufw/ufw/setuptools.patch
new file mode 100644
index 0000000000..ad5391cb98
--- /dev/null
+++ b/meta-networking/recipes-connectivity/ufw/ufw/setuptools.patch
@@ -0,0 +1,20 @@
+Move to setuptools as distutils is now deprecated.
+
+Upstream-Status: Submitted [https://code.launchpad.net/~tgamblin/ufw/distutils-to-setuptools]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/setup.py b/setup.py
+index cb67a6a..de648d3 100644
+--- a/setup.py
++++ b/setup.py
+@@ -25,8 +25,8 @@
+ #
+ 
+ from __future__ import print_function
+-from distutils.command.install import install as _install
+-from distutils.core import setup
++from setuptools.command.install import install as _install
++from setuptools import setup
+ import errno
+ import os
+ import re
diff --git a/meta-networking/recipes-connectivity/ufw/ufw_0.36.1.bb b/meta-networking/recipes-connectivity/ufw/ufw_0.36.1.bb
index c427e4ffde..70216a85e3 100644
--- a/meta-networking/recipes-connectivity/ufw/ufw_0.36.1.bb
+++ b/meta-networking/recipes-connectivity/ufw/ufw_0.36.1.bb
@@ -12,12 +12,13 @@ SRC_URI = "https://launchpad.net/ufw/0.36/0.36.1/+download/ufw-0.36.1.tar.gz \
            file://0001-optimize-boot.patch \
            file://0002-add-an-option-to-specify-iptables-location.patch \
            file://0003-only-make-one-reference-to-env.patch \
+           file://setuptools.patch \
            "
 SRC_URI[sha256sum] = "1c57e78fbf2970f0cc9c56ea87a231e6d83d825e55b9e31e2c88b91b0ea03c8c"
 
 UPSTREAM_CHECK_URI = "https://launchpad.net/ufw"
 
-inherit distutils3 features_check systemd update-rc.d
+inherit setuptools3_legacy features_check systemd update-rc.d
 
 RDEPENDS:${PN} = " \
                   iptables \
