diff --git a/phpBB/develop/check_flash_bbcodes.php b/phpBB/develop/check_flash_bbcodes.php
index 6e1b415bb6..2a54724aaa 100644
--- a/phpBB/develop/check_flash_bbcodes.php
+++ b/phpBB/develop/check_flash_bbcodes.php
@@ -140,8 +140,13 @@ function html_entity_decode_utf8($string)
 	static $trans_tbl;
 
 	// replace numeric entities
-	$string = preg_replace('~&#x([0-9a-f]+);~ei', 'code2utf8(hexdec("\\1"))', $string);
+	$string = preg_replace_callback('~&#x([0-9a-f]+);~i', function ($match) {
+		return code2utf8(hexdec($match[1]));
+	}, $string);
 	$string = preg_replace('~&#([0-9]+);~e', 'code2utf8(\\1)', $string);
+	$string = preg_replace_callback('~&#([0-9]+);~', function ($match) {
+		return code2utf8($match[1]);
+	}, $string);
 
 	// replace literal entities
 	if (!isset($trans_tbl))