diff --git a/PKGBUILD b/PKGBUILD
index 0ebabaf58123306f07307933b751e293213e6e08..3f8546ba2ad39ba9de855233c089c10aa79a1b63 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -19,7 +19,7 @@ pkgname=('php'
          'php-tidy'
          'php-xsl')
 pkgver=8.3.8
-pkgrel=1
+pkgrel=2
 arch=('x86_64')
 license=('PHP-3.01')
 url='https://www.php.net/'
@@ -28,14 +28,16 @@ makedepends=('apache' 'aspell' 'enchant' 'gd' 'gmp' 'icu' 'libsodium' 'libxslt'
              'oniguruma')
 checkdepends=('procps-ng')
 source=("https://php.net/distributions/${pkgbase}-${pkgver}.tar.xz"{,.asc}
-        'apache.patch' 'apache.conf' 'php-fpm.patch' 'php-fpm.tmpfiles' 'php.ini.patch')
+        'apache.patch' 'apache.conf' 'php-fpm.patch' 'php-fpm.tmpfiles' 'php.ini.patch'
+        'method-visibility.patch')
 sha256sums=('aea358b56186f943c2bbd350c9005b9359133d47e954cfc561385319ae5bb8d7'
             'SKIP'
             '702b163c66c65af92dcad8d79f41bda84bcd5d863235fcf1497c33a86db9e4ca'
             '4a2add00d93fa991ccdf6356090264c1059c79935642afff6e8d4a2107fa037e'
             '78b8074461cdfc5d4e0ba428a8387f308d60720c8ad35c6176801e5088f02090'
             '640dba0d960bfeaae9ad38d2826d3f6b5d6c175a4d3e16664eefff29141faad5'
-            'bf1de5ae6014f0593dacca2c046eb5a2d7c179733859854713b6813ebc629b08')
+            'bf1de5ae6014f0593dacca2c046eb5a2d7c179733859854713b6813ebc629b08'
+            '083e2b17a49166fe6891a6d7f7baece9fce42f0db3192fdac1fd1975e226eba8')
 validpgpkeys=('1198C0117593497A5EC5C199286AF1F9897469DC'
               'AFD8691FDAEDF03BDF6E460563F15A9B715376CA'
               'C28D937575603EB4ABB725861C0779DC5C0A9DE4')
@@ -47,6 +49,8 @@ prepare() {
 	patch -p0 -i "${srcdir}/apache.patch"
 	patch -p0 -i "${srcdir}/php-fpm.patch"
 	patch -p0 -i "${srcdir}/php.ini.patch"
+	# Fix https://gitlab.archlinux.org/archlinux/packaging/packages/php/-/issues/3
+	patch -p1 -i "${srcdir}/method-visibility.patch"
 	autoconf
 
 	# Disable failing tests
diff --git a/method-visibility.patch b/method-visibility.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ce5e253311de69e15f56a0c488b0bd732970ff11
--- /dev/null
+++ b/method-visibility.patch
@@ -0,0 +1,89 @@
+diff --git a/Zend/tests/gh14480.phpt b/Zend/tests/gh14480.phpt
+new file mode 100644
+index 0000000000..bab74785b6
+--- /dev/null
++++ b/Zend/tests/gh14480.phpt
+@@ -0,0 +1,60 @@
++--TEST--
++GH-14480: Method visibility issue
++--FILE--
++<?php
++trait PropertyHelperTrait
++{
++    protected function splitPropertyParts(): void
++    {
++	    echo "OK\n";
++    }
++}
++
++trait OrmPropertyHelperTrait
++{
++    abstract protected function splitPropertyParts(): void;
++    
++    protected function addJoinsForNestedProperty(): void
++    {
++        $this->splitPropertyParts();
++    }
++}
++
++trait SearchFilterTrait
++{
++    use PropertyHelperTrait;
++}
++
++abstract class AbstractFilter
++{
++    use OrmPropertyHelperTrait, PropertyHelperTrait;
++    
++    public function apply(): void
++    {
++        $this->filterProperty();
++    }
++    
++    abstract protected function filterProperty(): void;
++}
++
++class SearchFilter extends AbstractFilter
++{
++    use SearchFilterTrait;
++    protected function filterProperty(): void
++    {
++        $this->addJoinsForNestedProperty();
++    }
++}
++
++class FilterExtension
++{
++    public function applyToCollection(): void
++    {
++        (new SearchFilter())->apply();
++    }
++}
++
++(new FilterExtension)->applyToCollection();
++?>
++--EXPECT--
++OK
+diff --git a/Zend/zend_inheritance.c b/Zend/zend_inheritance.c
+index 402354baa8..228c5b6e54 100644
+--- a/Zend/zend_inheritance.c
++++ b/Zend/zend_inheritance.c
+@@ -2018,12 +2018,14 @@ static void zend_add_trait_method(zend_class_entry *ce, zend_string *name, zend_
+ 	if (check_inheritance) {
+ 		/* Inherited members are overridden by members inserted by traits.
+ 		 * Check whether the trait method fulfills the inheritance requirements. */
++		uint32_t flags = ZEND_INHERITANCE_CHECK_PROTO | ZEND_INHERITANCE_CHECK_VISIBILITY;
++		if (!(existing_fn->common.scope->ce_flags & ZEND_ACC_TRAIT)) {
++			flags |= ZEND_INHERITANCE_SET_CHILD_CHANGED |ZEND_INHERITANCE_SET_CHILD_PROTO |
++				ZEND_INHERITANCE_RESET_CHILD_OVERRIDE;
++		}
+ 		do_inheritance_check_on_method(
+ 			fn, fixup_trait_scope(fn, ce), existing_fn, fixup_trait_scope(existing_fn, ce),
+-			ce, NULL,
+-			ZEND_INHERITANCE_CHECK_PROTO | ZEND_INHERITANCE_CHECK_VISIBILITY |
+-			ZEND_INHERITANCE_SET_CHILD_CHANGED| ZEND_INHERITANCE_SET_CHILD_PROTO |
+-			ZEND_INHERITANCE_RESET_CHILD_OVERRIDE);
++			ce, NULL, flags);
+ 	}
+ }
+ /* }}} */