diff -pruN 2.11.1+1.0.19-1/debian/changelog 2.11.1+1.0.19-2/debian/changelog
--- 2.11.1+1.0.19-1/debian/changelog	2025-10-29 07:03:40.000000000 +0000
+++ 2.11.1+1.0.19-2/debian/changelog	2025-11-03 22:32:14.000000000 +0000
@@ -1,3 +1,9 @@
+php-proxy-manager (2.11.1+1.0.19-2) unstable; urgency=medium
+
+  * php-zend-code 4.17 compatibility
+
+ -- David Prévot <taffit@debian.org>  Mon, 03 Nov 2025 23:32:14 +0100
+
 php-proxy-manager (2.11.1+1.0.19-1) unstable; urgency=medium
 
   [ Jérôme Tamarelle ]
diff -pruN 2.11.1+1.0.19-1/debian/patches/0004-php-zend-code-4.17-compatibility.patch 2.11.1+1.0.19-2/debian/patches/0004-php-zend-code-4.17-compatibility.patch
--- 2.11.1+1.0.19-1/debian/patches/0004-php-zend-code-4.17-compatibility.patch	1970-01-01 00:00:00.000000000 +0000
+++ 2.11.1+1.0.19-2/debian/patches/0004-php-zend-code-4.17-compatibility.patch	2025-11-03 22:31:18.000000000 +0000
@@ -0,0 +1,82 @@
+From: =?utf-8?q?David_Pr=C3=A9vot?= <taffit@debian.org>
+Date: Mon, 3 Nov 2025 23:31:14 +0100
+Subject: php-zend-code 4.17 compatibility
+
+---
+ tests/ProxyManagerTest/Generator/MethodGeneratorTest.php              | 4 ++--
+ .../LazyLoadingGhost/MethodGenerator/InitializeProxyTest.php          | 2 +-
+ .../LazyLoadingGhost/MethodGenerator/IsProxyInitializedTest.php       | 2 +-
+ .../LazyLoadingValueHolder/MethodGenerator/InitializeProxyTest.php    | 2 +-
+ .../LazyLoadingValueHolder/MethodGenerator/IsProxyInitializedTest.php | 2 +-
+ 5 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/tests/ProxyManagerTest/Generator/MethodGeneratorTest.php b/tests/ProxyManagerTest/Generator/MethodGeneratorTest.php
+index abb81bd..1aa7284 100644
+--- a/tests/ProxyManagerTest/Generator/MethodGeneratorTest.php
++++ b/tests/ProxyManagerTest/Generator/MethodGeneratorTest.php
+@@ -163,7 +163,7 @@ final class MethodGeneratorTest extends TestCase
+         ));
+ 
+         self::assertSame('returnVoid', $method->getName());
+-        self::assertStringMatchesFormat('%a : void%a', $method->generate());
++        self::assertStringMatchesFormat('%a: void%a', $method->generate());
+     }
+ 
+     #[DataProvider('returnTypeHintsProvider')]
+@@ -175,7 +175,7 @@ final class MethodGeneratorTest extends TestCase
+         ));
+ 
+         self::assertSame($methodName, $method->getName());
+-        self::assertStringMatchesFormat('%a : ' . $expectedType . '%a', $method->generate());
++        self::assertStringMatchesFormat('%a: ' . $expectedType . '%a', $method->generate());
+     }
+ 
+     /**
+diff --git a/tests/ProxyManagerTest/ProxyGenerator/LazyLoadingGhost/MethodGenerator/InitializeProxyTest.php b/tests/ProxyManagerTest/ProxyGenerator/LazyLoadingGhost/MethodGenerator/InitializeProxyTest.php
+index d7c698f..a4108cd 100644
+--- a/tests/ProxyManagerTest/ProxyGenerator/LazyLoadingGhost/MethodGenerator/InitializeProxyTest.php
++++ b/tests/ProxyManagerTest/ProxyGenerator/LazyLoadingGhost/MethodGenerator/InitializeProxyTest.php
+@@ -35,6 +35,6 @@ final class InitializeProxyTest extends TestCase
+             'return $this->foo && $this->bar(\'initializeProxy\', []);',
+             $initializeProxy->getBody()
+         );
+-        self::assertStringMatchesFormat('%A : bool%A', $initializeProxy->generate(), 'Return type hint is boolean');
++        self::assertStringMatchesFormat('%A: bool%A', $initializeProxy->generate(), 'Return type hint is boolean');
+     }
+ }
+diff --git a/tests/ProxyManagerTest/ProxyGenerator/LazyLoadingGhost/MethodGenerator/IsProxyInitializedTest.php b/tests/ProxyManagerTest/ProxyGenerator/LazyLoadingGhost/MethodGenerator/IsProxyInitializedTest.php
+index b84ffb8..25ca208 100644
+--- a/tests/ProxyManagerTest/ProxyGenerator/LazyLoadingGhost/MethodGenerator/IsProxyInitializedTest.php
++++ b/tests/ProxyManagerTest/ProxyGenerator/LazyLoadingGhost/MethodGenerator/IsProxyInitializedTest.php
+@@ -29,6 +29,6 @@ final class IsProxyInitializedTest extends TestCase
+         self::assertSame('isProxyInitialized', $isProxyInitialized->getName());
+         self::assertCount(0, $isProxyInitialized->getParameters());
+         self::assertSame('return ! $this->foo;', $isProxyInitialized->getBody());
+-        self::assertStringMatchesFormat('%A : bool%A', $isProxyInitialized->generate(), 'Return type hint is boolean');
++        self::assertStringMatchesFormat('%A: bool%A', $isProxyInitialized->generate(), 'Return type hint is boolean');
+     }
+ }
+diff --git a/tests/ProxyManagerTest/ProxyGenerator/LazyLoadingValueHolder/MethodGenerator/InitializeProxyTest.php b/tests/ProxyManagerTest/ProxyGenerator/LazyLoadingValueHolder/MethodGenerator/InitializeProxyTest.php
+index dfd4639..383a72e 100644
+--- a/tests/ProxyManagerTest/ProxyGenerator/LazyLoadingValueHolder/MethodGenerator/InitializeProxyTest.php
++++ b/tests/ProxyManagerTest/ProxyGenerator/LazyLoadingValueHolder/MethodGenerator/InitializeProxyTest.php
+@@ -35,6 +35,6 @@ final class InitializeProxyTest extends TestCase
+             . ' && $this->bar = $bar;',
+             $initializeProxy->getBody()
+         );
+-        self::assertStringMatchesFormat('%A : bool%A', $initializeProxy->generate(), 'Return type hint is boolean');
++        self::assertStringMatchesFormat('%A: bool%A', $initializeProxy->generate(), 'Return type hint is boolean');
+     }
+ }
+diff --git a/tests/ProxyManagerTest/ProxyGenerator/LazyLoadingValueHolder/MethodGenerator/IsProxyInitializedTest.php b/tests/ProxyManagerTest/ProxyGenerator/LazyLoadingValueHolder/MethodGenerator/IsProxyInitializedTest.php
+index 96caac5..158a861 100644
+--- a/tests/ProxyManagerTest/ProxyGenerator/LazyLoadingValueHolder/MethodGenerator/IsProxyInitializedTest.php
++++ b/tests/ProxyManagerTest/ProxyGenerator/LazyLoadingValueHolder/MethodGenerator/IsProxyInitializedTest.php
+@@ -29,6 +29,6 @@ final class IsProxyInitializedTest extends TestCase
+         self::assertSame('isProxyInitialized', $isProxyInitialized->getName());
+         self::assertCount(0, $isProxyInitialized->getParameters());
+         self::assertSame('return null !== $this->bar;', $isProxyInitialized->getBody());
+-        self::assertStringMatchesFormat('%A : bool%A', $isProxyInitialized->generate(), 'Return type hint is boolean');
++        self::assertStringMatchesFormat('%A: bool%A', $isProxyInitialized->generate(), 'Return type hint is boolean');
+     }
+ }
diff -pruN 2.11.1+1.0.19-1/debian/patches/series 2.11.1+1.0.19-2/debian/patches/series
--- 2.11.1+1.0.19-1/debian/patches/series	2025-10-29 07:03:24.000000000 +0000
+++ 2.11.1+1.0.19-2/debian/patches/series	2025-11-03 22:31:18.000000000 +0000
@@ -1,3 +1,4 @@
 0001-Also-skip-system-classes-during-tests.patch
 0002-Make-provider-functions-static-PHPUnit-11-Fix.patch
 0003-Compatibility-with-recent-PHPUnit-12.patch
+0004-php-zend-code-4.17-compatibility.patch
diff -pruN 2.11.1+1.0.19-1/debian/tests/control 2.11.1+1.0.19-2/debian/tests/control
--- 2.11.1+1.0.19-1/debian/tests/control	2025-10-29 06:59:20.000000000 +0000
+++ 2.11.1+1.0.19-2/debian/tests/control	2025-11-03 22:31:46.000000000 +0000
@@ -1,3 +1,9 @@
 Test-Command: mkdir --parents vendor ProxyManager && phpabtpl --require composer/composer --require symfony/filesystem --require friendsofphp/proxy-manager-lts > debian/autoload.tests.php.tpl && phpab --output vendor/autoload.php --template debian/autoload.tests.php.tpl tests/ProxyManagerTest tests/ProxyManagerTestAsset tests/Stubbed/Laminas/Server && phpunit
 Restrictions: allow-stderr, rw-build-tree
-Depends: composer, php-symfony-filesystem, phpab, phpunit, pkg-php-tools, @
+Depends: composer,
+         php-symfony-filesystem,
+         php-zend-code (>> 4.17),
+         phpab,
+         phpunit,
+         pkg-php-tools,
+         @
