Index: lib/ezutils/classes/ezdebug.php
===================================================================
--- lib/ezutils/classes/ezdebug.php	(revision 22321)
+++ lib/ezutils/classes/ezdebug.php	(working copy)
@@ -283,7 +283,7 @@
         {
             case self::HANDLE_FROM_PHP:
             {
-                set_error_handler( "eZDebugErrorHandler" );
+                set_error_handler( array( $instance, 'recursionProtectErrorHandler' ) );
             } break;
 
             case self::HANDLE_TO_PHP:
@@ -320,6 +320,22 @@
         return $old_types;
     }
 
+    public function recursionProtectErrorHandler( $errno, $errstr, $errfile, $errline )
+    {
+        if ( $this->recursionFlag )
+        {
+            print( "Fatal debug error: A recursion in debug error handler was detected, aborting debug message.<br/>" );
+            $this->recursionFlag = false;
+            return;
+        }
+
+        $this->recursionFlag = true;
+
+        $result = $this->errorHandler( $errno, $errstr, $errfile, $errline );
+        $this->recursionFlag = false;
+        return $result;
+    }
+
     /*!
      Handles PHP errors, creates notice, warning and error messages for
      the various PHP error types.
@@ -1900,28 +1916,8 @@
 
     /// A list of debug reports that appears at the top of debug output
     public $topReportsList;
-}
 
-/*!
-  Helper function for eZDebug, called whenever a PHP error occurs.
-  The error is then handled by the eZDebug class.
-*/
-
-function eZDebugErrorHandler( $errno, $errstr, $errfile, $errline )
-{
-    if ( $GLOBALS['eZDebugRecursionFlag'] )
-    {
-        print( "Fatal debug error: A recursion in debug error handler was detected, aborting debug message.<br/>" );
-        $GLOBALS['eZDebugRecursionFlag'] = false;
-        return;
-    }
-
-    $GLOBALS['eZDebugRecursionFlag'] = true;
-    $debug = eZDebug::instance();
-    $result = $debug->errorHandler( $errno, $errstr, $errfile, $errline );
-    $GLOBALS['eZDebugRecursionFlag'] = false;
-    return $result;
+    private $recursionFlag = false;
 }
-$GLOBALS['eZDebugRecursionFlag'] = false;
 
 ?>
