diff --git a/lib/l10n.php b/lib/l10n.php
index f172710e5d7b9a8c686e748cc6a60d9ee7628ca9..b83d8ff86db265a59d46cc51a56e1c6f1f7e706b 100644
--- a/lib/l10n.php
+++ b/lib/l10n.php
@@ -294,8 +294,14 @@ class OC_L10N{
 			}
 			foreach($accepted_languages as $i) {
 				$temp = explode(';', $i);
-				if(array_search($temp[0], $available) !== false) {
-					return $temp[0];
+				$temp[0] = str_replace('-','_',$temp[0]);
+				if( ($key = array_search($temp[0], $available)) !== false) {
+					return $available[$key];
+				}
+				foreach($available as $l) {
+					if ( $temp[0] == substr($l,0,2) ) {
+						return $l;
+					}
 				}
 			}
 		}