--- /tmp/dfa4ba61-7f00-0101-f42d-530014008f63/versionviewframe.php	2012-04-23 16:39:36.561048949 +0200
+++ /tmp/dfa4ba20-7f00-0101-f42d-53002057a2a2/versionviewframe.php	2012-04-23 16:39:36.505045114 +0200
@@ -127,18 +127,34 @@
 
 $ini = eZINI::instance();
 
+// Find ContentObjectLocale for all site accesses in RelatedSiteAccessList
+foreach ( $ini->variable( 'SiteAccessSettings', 'RelatedSiteAccessList' ) as $relatedSA )
+{
+    $siteaccessLocaleMap[$relatedSA] = eZSiteAccess::getIni( $relatedSA, 'site.ini' )->variable( 'RegionalSettings', 'ContentObjectLocale' );
+}
+
 $siteaccess = $ini->variable( 'SiteSettings', 'DefaultAccess' );
 if ( $Module->hasActionParameter( 'SiteAccess' ) )
 {
     $siteaccess = $Module->actionParameter( 'SiteAccess' );
-}
-
-// Find ContentObjectLocale for all site accesses in RelatedSiteAccessList
-foreach ( $ini->variable( 'SiteAccessSettings', 'RelatedSiteAccessList' ) as $relatedSA )
+} else if ( $LanguageCode )
 {
-    $siteaccessLocaleMap[$relatedSA] = eZSiteAccess::getIni( $relatedSA, 'site.ini' )->variable( 'RegionalSettings', 'ContentObjectLocale' );
+    /* IT-CE Kernel Hack */
+    /* Select automatically the siteaccess corresponding to the edited object language*/
+    if ($LanguageCode != $siteaccessLocaleMap[$siteaccess]) {
+        foreach ($siteaccessLocaleMap as $relatedSA => $language)
+        {
+            if ($language==$LanguageCode)
+            {
+                $siteaccess = $relatedSA;
+                break;
+            }
+        }
+    }
 }
 
+
+
 // Try to find a version that has the language we want, by going backwards in the version history
 // Also, gether unique list of translations in all versions up until this one
 $foundTranslationList = array();
