diff --git a/includes/common.inc b/includes/common.inc
index 80fc911..05b2968 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -665,7 +665,12 @@ function drupal_error_handler($errno, $message, $filename, $line, $context) {
     return;
   }
 
-  if ($errno & (E_ALL ^ E_DEPRECATED ^ E_NOTICE)) {
+  $error_const = E_ALL ^ E_DEPRECATED ^ E_NOTICE;
+  if (version_compare(phpversion(), '5.4.0') > 0) {
+    $error_const ^= E_STRICT;
+  }
+
+  if ($errno & (E_ALL ^ $error_const)) {
     $types = array(1 => 'error', 2 => 'warning', 4 => 'parse error', 8 => 'notice', 16 => 'core error', 32 => 'core warning', 64 => 'compile error', 128 => 'compile warning', 256 => 'user error', 512 => 'user warning', 1024 => 'user notice', 2048 => 'strict warning', 4096 => 'recoverable fatal error');
 
     // For database errors, we want the line number/file name of the place that
