Index: doc/bc/4.3/changes-4.3.0.txt
===================================================================
--- doc/bc/4.3/changes-4.3.0.txt	(revision 24954)
+++ doc/bc/4.3/changes-4.3.0.txt	(working copy)
@@ -76,6 +76,10 @@
   ext_include(), ext_activate(), ext_class(), lib_include(), lib_class() and kernel_class()
   These functions will be removed in a future version.
 
+- kernel/common/image.php: imageInit()
+  Function will be removed in a future version, use eZImageManager::instanceInit() instead.
+  
+
 
 Renamed methods
 ---------------
Index: kernel/classes/datatypes/ezimage/ezimagealiashandler.php
===================================================================
--- kernel/classes/datatypes/ezimage/ezimagealiashandler.php	(revision 24945)
+++ kernel/classes/datatypes/ezimage/ezimagealiashandler.php	(working copy)
@@ -80,8 +80,7 @@
     */
     function attributes()
     {
-        require_once( 'kernel/common/image.php' );
-        $imageManager = imageInit();
+        $imageManager = eZImageManager::instanceInit();
         $aliasList = $imageManager->aliasList();
         return array_merge( array( 'alternative_text',
                                    'original_filename',
@@ -100,8 +99,8 @@
                               'original_filename',
                               'is_valid' ) ) )
             return true;
-        require_once( 'kernel/common/image.php' );
-        $imageManager = imageInit();
+
+        $imageManager = eZImageManager::instanceInit();
         if ( $imageManager->hasAlias( $attributeName ) )
             return true;
         return false;
@@ -414,8 +413,7 @@
     */
     function imageAlias( $aliasName )
     {
-        require_once( 'kernel/common/image.php' );
-        $imageManager = imageInit();
+        $imageManager = eZImageManager::instanceInit();
         if ( !$imageManager->hasAlias( $aliasName ) )
         {
             return null;
@@ -428,7 +426,7 @@
         }
         else
         {
-            $imageManager = imageInit();
+            $imageManager = eZImageManager::instanceInit();
             if ( $imageManager->hasAlias( $aliasName ) )
             {
                 $original = $aliasList['original'];
@@ -652,8 +650,7 @@
                         $aliasEntry['filesize'] = $aliasFile->size();
                 }
 
-                require_once( 'kernel/common/image.php' );
-                $imageManager = imageInit();
+                $imageManager = eZImageManager::instanceInit();
                 if ( $imageManager->isImageAliasValid( $aliasEntry ) )
                 {
                     $aliasList[$aliasEntry['name']] = $aliasEntry;
@@ -892,8 +889,7 @@
         $originalNode = $doc->createElement( "original" );
         $imageNode->appendChild( $originalNode );
 
-        require_once( 'kernel/common/image.php' );
-        $imageManager = imageInit();
+        $imageManager = eZImageManager::instanceInit();
 
         $aliasName = 'original';
 
@@ -1200,8 +1196,7 @@
     */
     function initialize( $mimeData, $originalFilename, $imageAltText = false )
     {
-        require_once( 'kernel/common/image.php' );
-        $imageManager = imageInit();
+        $imageManager = eZImageManager::instanceInit();
 
         $this->setOriginalAttributeDataValues( $this->ContentObjectAttributeData['id'],
                                                $this->ContentObjectAttributeData['version'],
@@ -1641,8 +1636,7 @@
 
         $fileName = false;
 
-        require_once( 'kernel/common/image.php' );
-        $imageManager = imageInit();
+        $imageManager = eZImageManager::instanceInit();
 
         $mimeData = eZMimeType::findByFileContents( $fileName );
         $imageManager->analyzeImage( $mimeData );
Index: kernel/common/image.php
===================================================================
--- kernel/common/image.php	(revision 24945)
+++ kernel/common/image.php	(working copy)
@@ -28,20 +28,17 @@
 // ## END COPYRIGHT, LICENSE AND WARRANTY NOTICE ##
 //
 
-function imageInit()
-{
-    if ( isset( $GLOBALS['eZPublishImageManager'] ) )
-    {
-        return $GLOBALS['eZPublishImageManager'];
-    }
-
-    $GLOBALS['eZPublishImageManager'] = eZImageManager::instance();
-
-    $GLOBALS['eZPublishImageManager']->readINISettings();
 
-    eZImageAnalyzer::readAnalyzerSettingsFromINI();
+/**
+ * Image manager instance
+ * 
+ * @package kernel
+ * @deprecated Deprecated as of 4.3, use {@link eZImageManager::instanceInit()} instead.
+ */
 
-    return $GLOBALS['eZPublishImageManager'];
+function imageInit()
+{
+    return eZImageManager::instanceInit();
 }
 
 ?>
Index: lib/ezimage/classes/ezimagemanager.php
===================================================================
--- lib/ezimage/classes/ezimagemanager.php	(revision 24945)
+++ lib/ezimage/classes/ezimagemanager.php	(working copy)
@@ -1360,16 +1360,34 @@
 
     /**
      * Returns a shared instance of the eZImageManager class.
+     * Note: In most cases you'd want to use {@see self:instanceInit()} instead.
      *
      * @return eZImageManager
      */
     static function instance()
     {
-        if ( !isset( $GLOBALS["eZImageManager"] ) )
+        if ( self::$instance === null )
+        {
+            self::$instance = new self();
+        }
+        return self::$instance;
+    }
+    
+    /**
+     * Returns a shared instance of the eZImageManager class and makes it ready for use.
+     * As in calls {@see self::readINISettings()} and {@see eZImageAnalyzer::readAnalyzerSettingsFromINI()}
+     *
+     * @return eZImageManager
+     */
+    static function instanceInit()
+    {
+        if ( self::$initInstance === null )
         {
-            $GLOBALS["eZImageManager"] = new eZImageManager();
+            self::$initInstance = self::instance();
+            self::$initInstance->readINISettings();
+            eZImageAnalyzer::readAnalyzerSettingsFromINI();
         }
-        return $GLOBALS["eZImageManager"];
+        return self::$initInstance;
     }
 
     /// \privatesection
@@ -1381,5 +1399,7 @@
     public $RuleMap;
     public $MIMETypes;
     public $Types = array();
+    protected static $instance = null;
+    protected static $initInstance = null;
 }
 ?>
\ No newline at end of file
Index: lib/ezpdf/classes/class.ezpdftable.php
===================================================================
--- lib/ezpdf/classes/class.ezpdftable.php	(revision 24945)
+++ lib/ezpdf/classes/class.ezpdftable.php	(working copy)
@@ -1182,8 +1182,7 @@
                 $newFilename = eZSys::cacheDirectory() . '/' . md5( mt_rand() ) . '.jpg';
             }
 
-            require_once( 'kernel/common/image.php' );
-            $img = imageInit();
+            $img = eZImageManager::instanceInit();
             $newImg = $img->convert( $filename,
                                      $newFilename,
                                      false,
@@ -1274,8 +1273,7 @@
                 }
                 $newMimetype = eZMimeType::findByURL( $newFilename );
 
-                require_once( 'kernel/common/image.php' );
-                $img = imageInit();
+                $img = eZImageManager::instanceInit();
                 $newImg = $img->convert( $mimetype,
                                          $newMimetype,
                                          false,
