Index: branches/2.8.x/CHANGELOG
===================================================================
--- branches/2.8.x/CHANGELOG	(revision 1690)
+++ branches/2.8.x/CHANGELOG	(revision 1691)
@@ -11,6 +11,8 @@
 ! = Update/Change
 ===============================================================================
 
+10 Jun-2012 Build 1691 Werner v.d.Decken(DarkViper)
+# fixed the order of loading languages
 31 May-2012 Build 1690 Werner v.d.Decken(DarkViper)
 ! ModLanguage modified for auto fallback to DEFAULT_LANGUAGE
 ! globalExceptionHandler added AppException, SecurityException, SecDirectoryTraversalException
Index: branches/2.8.x/wb/admin/interface/version.php
===================================================================
--- branches/2.8.x/wb/admin/interface/version.php	(revision 1690)
+++ branches/2.8.x/wb/admin/interface/version.php	(revision 1691)
@@ -51,5 +51,5 @@
 
 // check if defined to avoid errors during installation (redirect to admin panel fails if PHP error/warnings are enabled)
 if(!defined('VERSION')) define('VERSION', '2.8.3');
-if(!defined('REVISION')) define('REVISION', '1690');
+if(!defined('REVISION')) define('REVISION', '1691');
 if(!defined('SP')) define('SP', '');
Index: branches/2.8.x/wb/framework/ModLanguage.php
===================================================================
--- branches/2.8.x/wb/framework/ModLanguage.php	(revision 1690)
+++ branches/2.8.x/wb/framework/ModLanguage.php	(revision 1691)
@@ -102,16 +102,16 @@
 			{
 			// now load and merge the files in order SYSTEM - DEFAULT - CURRENT
 				$this->_aLanguageTable = array();
-				// at first search SYSTEM_LANGUAGE
-				$this->_loadLanguage($sLangDir, $this->_sSystemLanguage);
-				// at second merge DEFAULT_LANGUAGE
-				if(!in_array($sDefaultLanguage, $this->_aLoadedLanguages)) {
-					$this->_loadLanguage($sLangDir, $sDefaultLanguage);
-				}
-				// at third merge CURRENT_LANGUAGE
+				// at first load DEFAULT_LANGUAGE
+				$this->_loadLanguage($sLangDir, $sDefaultLanguage);
+				// at second merge CURRENT_LANGUAGE to front if not already loaded
 				if(!in_array($sCurrentLanguage, $this->_aLoadedLanguages)) {
 					$this->_loadLanguage($sLangDir, $sCurrentLanguage);
 				}
+				// at last merge SYSTEM_LANGUAGE to background if not already loaded
+				if(!in_array($this->_sSystemLanguage, $this->_aLoadedLanguages)) {
+					$this->_loadLanguage($sLangDir, $this->_sSystemLanguage, true);
+				}
 				// if no predefined language was fond, search for first available language
 				if(sizeof($this->_aLanguageTable) == 0) {
 					// if absolutely no language was fond, throw an exception
@@ -139,11 +139,15 @@
  * @param string $sLangDir
  * @param string $sLanguage
  */
-	private function _loadLanguage($sLangDir, $sLanguage)
+	private function _loadLanguage($sLangDir, $sLanguage, $bLoadSystemLanguage = false)
 	{
 		if(is_readable($sLangDir.$sLanguage.'.php')) {
-			$this->_aLanguageTable = array_merge($this->_aLanguageTable,
-			                                    $this->_importArrays($sLangDir.$sLanguage.'.php'));
+			$aTemp = $this->_importArrays($sLangDir.$sLanguage.'.php');
+			if($bLoadSystemLanguage) {
+				$this->_aLanguageTable = array_merge($aTemp, $this->_aLanguageTable);
+			}else {
+				$this->_aLanguageTable = array_merge($this->_aLanguageTable, $aTemp);
+			}
 			$this->_aLoadedLanguages[] = $sLanguage;
 		}
 	}
