diff --git a/index.php b/index.php
index 8f1d37e..9bb497b 100755
--- a/index.php	2012-02-22 19:49:31.834649808 +0100
+++ b/index.php	2012-02-22 23:25:15.000000000 +0100
@@ -334,6 +334,16 @@
 // all eZINI instances as they may not take into account siteaccess specific settings.
 eZINI::resetAllInstances( false );
 
+// Reload Extenion ordering to reorder eZINI Global Override Dirs.
+// @TODO : Améliorer la gestion globale (éviter des appels multiples !!!)
+$siteINI = ezINI::instance();
+if ( $siteINI->variable( 'ExtensionSettings', 'ExtensionOrdering' ) === 'enabled' )
+{
+    eZINI::removeGlobalOverrideDirsByScope( 'sa-extension' );
+    eZINI::removeGlobalOverrideDirsByScope( 'extension' );
+    eZExtension::activateExtensions( false );
+}
+
 $mobileDeviceDetect = new ezpMobileDeviceDetect( ezpMobileDeviceDetectFilter::getFilter() );
 if( $mobileDeviceDetect->isEnabled() )
 {
diff --git a/lib/ezutils/classes/ezini.php b/lib/ezutils/classes/ezini.php
index ee4060f..f3ab4f1 100755
--- a/lib/ezutils/classes/ezini.php	2012-02-22 19:49:31.966649808 +0100
+++ b/lib/ezutils/classes/ezini.php	2012-02-22 23:27:02.000000000 +0100
@@ -1156,6 +1156,30 @@
     }
 
     /**
+     * Removes global override dirs by scole
+     * See {@link eZINI::defaultOverrideDirs()} for how these parameters are used.
+     *
+     * @param string $scope 
+     * @return bool True if new dir was appended, false if there was a $identifier match and a overwrite
+     */
+    static function removeGlobalOverrideDirsByScope( $scope )
+    {
+
+        $dirs =& self::$GlobalOverrideDirArray;
+
+
+        if ( !isset( $dirs[$scope] ) )
+        {
+            eZDebug::writeWarning( "Undefined override dir scope: '$scope'", __METHOD__ );
+            $scope = 'extension';
+        }
+
+        $dirs[$scope] = array();
+
+        return true;
+    }
+
+    /**
      * Removes an override dir by identifier
      * See {@link eZINI::defaultOverrideDirs()} for how these parameters are used.
      *

