diff --git a/settings/ajax/setlanguage.php b/settings/ajax/setlanguage.php
index d8d1a860378d31f7748558c3fcf3fffef1ac6e6b..e3b00c3bc8073b980949fc8dafb925755bd54d34 100644
--- a/settings/ajax/setlanguage.php
+++ b/settings/ajax/setlanguage.php
@@ -7,11 +7,17 @@ $l=OC_L10N::get('settings');
 
 OC_JSON::checkLoggedIn();
 
+
 // Get data
 if( isset( $_POST['lang'] ) ){
+	$languageCodes=OC_L10N::findAvailableLanguages();
 	$lang=$_POST['lang'];
-	OC_Preferences::setValue( OC_User::getUser(), 'core', 'lang', $lang );
-	OC_JSON::success(array("data" => array( "message" => $l->t("Language changed") )));
+	if(array_search($lang,$languageCodes) or $lang=='en'){
+		OC_Preferences::setValue( OC_User::getUser(), 'core', 'lang', $lang );
+		OC_JSON::success(array("data" => array( "message" => $l->t("Language changed") )));
+	}else{
+		OC_JSON::error(array("data" => array( "message" => $l->t("Invalid request") )));
+	}
 }else{
 	OC_JSON::error(array("data" => array( "message" => $l->t("Invalid request") )));
 }