diff --git a/phpBB/common.php b/phpBB/common.php
index c4a3160102..087eaeef83 100644
--- a/phpBB/common.php
+++ b/phpBB/common.php
@@ -172,7 +172,8 @@ if (defined('DEBUG_EXTRA'))
}
// Load Extensions
-if (!empty($load_extensions))
+// dl() is deprecated and disabled by default as of PHP 5.3.
+if (!empty($load_extensions) && function_exists('dl'))
{
$load_extensions = explode(',', $load_extensions);
diff --git a/phpBB/docs/CHANGELOG.html b/phpBB/docs/CHANGELOG.html
index 7f110c5ea4..bf33194748 100644
--- a/phpBB/docs/CHANGELOG.html
+++ b/phpBB/docs/CHANGELOG.html
@@ -101,6 +101,7 @@
[Fix] Various XHTML mistakes in prosilver. (Bug #54705)
[Fix] Correctly show topic ATOM feed link when only post id is specified. (Bug #53025)
[Fix] Cleanly handle forum/topic not found in ATOM Feeds. (Bug #54295)
+ [Fix] PHP 5.3 compatibility: Check if function dl() exists before calling it. (Bug #54665)
[Change] Send time of last item instead of current time in ATOM Feeds. (Bug #53305)
[Change] Use em dash instead of hyphen/minus as separator in ATOM Feeds item statistics. (Bug #53565)
diff --git a/phpBB/install/database_update.php b/phpBB/install/database_update.php
index 5eeb449019..b7cfdd36b9 100644
--- a/phpBB/install/database_update.php
+++ b/phpBB/install/database_update.php
@@ -45,7 +45,7 @@ if (!defined('PHPBB_INSTALLED') || empty($dbms) || empty($acm_type))
}
// Load Extensions
-if (!empty($load_extensions))
+if (!empty($load_extensions) && function_exists('dl'))
{
$load_extensions = explode(',', $load_extensions);
diff --git a/phpBB/style.php b/phpBB/style.php
index 0b4c3d0d41..64241f7ed3 100644
--- a/phpBB/style.php
+++ b/phpBB/style.php
@@ -31,7 +31,7 @@ if (version_compare(PHP_VERSION, '6.0.0-dev', '<'))
}
// Load Extensions
-if (!empty($load_extensions))
+if (!empty($load_extensions) && function_exists('dl'))
{
$load_extensions = explode(',', $load_extensions);