diff --git a/docs/index.rst b/docs/index.rst
index b670bccdb4cdbc9fda396495ca7a6a07eef8fe50..a0dd4930b2e4ae0eb0c46f52e4eda64525c8feb8 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -223,6 +223,7 @@ ar71xx-generic
   - Rocket M2/M5 Ti
   - Rocket M2/M5 XW
   - UniFi AC Mesh [#ath10k]_
+  - UniFi AC Mesh Pro [#ath10k]_
   - UniFi AP
   - UniFi AP AC Lite [#ath10k]_
   - UniFi AP AC LR [#ath10k]_
diff --git a/patches/openwrt/0013-ar71xx-add-support-for-UniFi-AC-Mesh-Pro.patch b/patches/openwrt/0013-ar71xx-add-support-for-UniFi-AC-Mesh-Pro.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e3c0eebbc0fecdc9db47929fd8bd447c6dcfe908
--- /dev/null
+++ b/patches/openwrt/0013-ar71xx-add-support-for-UniFi-AC-Mesh-Pro.patch
@@ -0,0 +1,121 @@
+From: Christoph Krapp <achterin@googlemail.com>
+Date: Thu, 8 Nov 2018 11:09:02 +0000
+Subject: ar71xx: add support for UniFi-AC-Mesh-Pro
+
+This adds the build option for UniFi AC Mesh Pro as well as
+model detection for it.
+The device is a hardware clone of the AC Pro.
+
+- SoC: QCA9563-AL3A (775Mhz)
+- RAM: 128MiB
+- Flash: 16MiB - dual firmware partitions!
+- LAN: 2x 1000M - POE+
+- Wireless:
+        2.4G: QCA9563
+          5G: UniFi Chip, QCA988X compatible
+
+Signed-off-by: Christoph Krapp <achterin@googlemail.com>
+
+diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
+index 3af2eee2bd5f28dd1b1ffd2f212f79ff392b811a..ccbd4e77c324a36e7fba6e6dccad59d8f94a3921 100755
+--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
++++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
+@@ -98,22 +98,28 @@ ubnt_xm_board_detect() {
+ 	[ -z "$model" ] || AR71XX_MODEL="${model}${magic:3:1}"
+ }
+ 
+-ubnt_ac_lite_get_mtd_part_magic() {
++ubnt_unifi_ac_get_mtd_part_magic() {
+ 	ar71xx_get_mtd_offset_size_format EEPROM 12 2 %02x
+ }
+ 
+-ubnt_ac_lite_board_detect() {
++ubnt_unifi_ac_board_detect() {
+ 	local model
+ 	local magic
+ 
+-	magic="$(ubnt_ac_lite_get_mtd_part_magic)"
++	magic="$(ubnt_unifi_ac_get_mtd_part_magic)"
+ 	case ${magic:0:4} in
+ 	"e517")
+ 		model="Ubiquiti UniFi-AC-LITE"
+ 		;;
++	"e537")
++		model="Ubiquiti UniFi-AC-PRO"
++		;;
+ 	"e557")
+ 		model="Ubiquiti UniFi-AC-MESH"
+ 		;;
++	"e567")
++		model="Ubiquiti UniFi-AC-MESH-PRO"
++		;;
+ 	esac
+ 
+ 	[ -z "$model" ] || AR71XX_MODEL="${model}"
+@@ -1369,10 +1375,11 @@ ar71xx_board_detect() {
+ 		;;
+ 	*"UniFi-AC-LITE/MESH")
+ 		name="unifiac-lite"
+-		ubnt_ac_lite_board_detect
++		ubnt_unifi_ac_board_detect
+ 		;;
+-	*"UniFi-AC-PRO")
++	*"UniFi-AC-PRO/MESH-PRO")
+ 		name="unifiac-pro"
++		ubnt_unifi_ac_board_detect
+ 		;;
+ 	*"UniFiAP Outdoor")
+ 		name="unifi-outdoor"
+diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt
+index e7655b3c026ca8d3367b48c14f7263267c923008..1d0e3d910d42ab87af8481d6d13a79949d68e41b 100644
+--- a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt
++++ b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt
+@@ -2109,7 +2109,7 @@ config ATH79_MACH_UBNT
+ 	select ATH79_DEV_USB
+ 
+ config ATH79_MACH_UBNT_UNIFIAC
+-	bool "Ubiquiti UniFi AC (LITE/LR/MESH/PRO) support"
++	bool "Ubiquiti UniFi AC (LITE/LR/MESH/PRO/MESH-PRO) support"
+ 	select SOC_QCA956X
+ 	select ATH79_DEV_AP9X_PCI if PCI
+ 	select ATH79_DEV_ETH
+diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c
+index 38195a466b841732aa5d2e4f775498f45c556a62..2f62d32029ff46843ee6ad3d9646928fd3f50c3a 100644
+--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c
++++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-unifiac.c
+@@ -176,4 +176,4 @@ static void __init ubnt_unifiac_pro_setup(void)
+ 
+ 
+ MIPS_MACHINE(ATH79_MACH_UBNT_UNIFIAC_PRO, "UBNT-UF-AC-PRO",
+-	     "Ubiquiti UniFi-AC-PRO", ubnt_unifiac_pro_setup);
++	     "Ubiquiti UniFi-AC-PRO/MESH-PRO", ubnt_unifiac_pro_setup);
+diff --git a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h
+index 390ec0b2c38d9af99e215f75009eed9b2e4c0b01..80f6e1d95b7a4e5559e7d5da041b32d962ad4e84 100644
+--- a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h
++++ b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h
+@@ -329,7 +329,7 @@ enum ath79_mach_type {
+ 	ATH79_MACH_UBNT_UAP_PRO,		/* Ubiquiti UniFi AP Pro */
+ 	ATH79_MACH_UBNT_UNIFI,			/* Ubiquiti Unifi */
+ 	ATH79_MACH_UBNT_UNIFIAC_LITE,		/* Ubiquiti Unifi AC LITE/LR/MESH */
+-	ATH79_MACH_UBNT_UNIFIAC_PRO,		/* Ubiquiti Unifi AC PRO */
++	ATH79_MACH_UBNT_UNIFIAC_PRO,		/* Ubiquiti Unifi AC PRO/MESH PRO */
+ 	ATH79_MACH_UBNT_UNIFI_OUTDOOR,		/* Ubiquiti UnifiAP Outdoor */
+ 	ATH79_MACH_UBNT_UNIFI_OUTDOOR_PLUS,	/* Ubiquiti UnifiAP Outdoor+ */
+ 	ATH79_MACH_UBNT_XM,			/* Ubiquiti Networks XM board rev 1.0 */
+diff --git a/target/linux/ar71xx/image/generic-ubnt.mk b/target/linux/ar71xx/image/generic-ubnt.mk
+index 07c02955041b1ca2c6eca3ad9e08dba5da41e455..77f9d3ad0a825b21b382e1a2d5490580ce9f2e49 100644
+--- a/target/linux/ar71xx/image/generic-ubnt.mk
++++ b/target/linux/ar71xx/image/generic-ubnt.mk
+@@ -143,6 +143,12 @@ define Device/ubnt-unifiac-pro
+ endef
+ TARGET_DEVICES += ubnt-unifiac-pro
+ 
++define Device/ubnt-unifiac-mesh-pro
++  $(Device/ubnt-unifiac-pro)
++  DEVICE_TITLE := Ubiquiti UniFi AC-Mesh-Pro
++endef
++TARGET_DEVICES += ubnt-unifiac-mesh-pro
++
+ define Device/ubnt-unifi-outdoor
+   $(Device/ubnt-bz)
+   DEVICE_TITLE := Ubiquiti UniFi Outdoor
diff --git a/targets/ar71xx-generic b/targets/ar71xx-generic
index ce95d07bd2df4a3ff2f5ad0c9bbc59a52ee2703e..14aa79daeae89582dced202908dccc38698abb48 100644
--- a/targets/ar71xx-generic
+++ b/targets/ar71xx-generic
@@ -311,6 +311,10 @@ device ubiquiti-unifi-ac-mesh ubnt-unifiac-mesh
 packages $ATH10K_PACKAGES
 factory
 
+device ubiquiti-unifi-ac-mesh-pro ubnt-unifiac-mesh-pro
+packages $ATH10K_PACKAGES
+factory
+
 
 # Western Digital