diff --git a/indra/llui/llspellcheck.cpp b/indra/llui/llspellcheck.cpp
index 46df44cdba88e6a58a371ffba46d0813c1eb6636..aa39e21a96c759da5732303a1664eafdc28aa912 100644
--- a/indra/llui/llspellcheck.cpp
+++ b/indra/llui/llspellcheck.cpp
@@ -122,9 +122,7 @@ void LLSpellChecker::refreshDictionaryMap()
 		tmp_app_path = (sdDict.has("name")) ? app_path + sdDict["name"].asString() : LLStringUtil::null;
 		tmp_user_path = (sdDict.has("name")) ? user_path + sdDict["name"].asString() : LLStringUtil::null;
 		sdDict["installed"] = 
-			(!tmp_app_path.empty()) && 
-			( ((gDirUtilp->fileExists(tmp_user_path + ".aff")) && (gDirUtilp->fileExists(tmp_user_path + ".dic"))) ||
-			  ((gDirUtilp->fileExists(tmp_app_path + ".aff")) && (gDirUtilp->fileExists(tmp_app_path + ".dic"))) );
+			(!tmp_app_path.empty()) && ((gDirUtilp->fileExists(tmp_user_path + ".dic")) || (gDirUtilp->fileExists(tmp_app_path + ".dic")));
 		sdDict["has_custom"] = (!tmp_user_path.empty()) && (gDirUtilp->fileExists(tmp_user_path + DICT_CUSTOM_SUFFIX + ".dic"));
 		sdDict["has_ignore"] = (!tmp_user_path.empty()) && (gDirUtilp->fileExists(tmp_user_path + DICT_IGNORE_SUFFIX + ".dic"));
 	}
@@ -243,7 +241,7 @@ void LLSpellChecker::initHunspell(const std::string& dict_name)
 	}
 
 	const LLSD dict_entry = (!dict_name.empty()) ? getDictionaryData(dict_name) : LLSD();
-	if ( (!dict_entry.isDefined()) || (!dict_entry["installed"].asBoolean()) )
+	if ( (!dict_entry.isDefined()) || (!dict_entry["installed"].asBoolean()) || (!dict_entry["is_primary"].asBoolean()))
 	{
 		sSettingsChangeSignal();
 		return;
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index c41488ce916803c59091797235d5dea7c28c6936..c444d2bb6f23d217ce0ce10893619a4f32d58b39 100755
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -997,7 +997,7 @@ void LLFloaterPreference::refreshDictLists(bool from_settings)
 		for (LLSD::array_const_iterator dict_it = dict_map.beginArray(); dict_it != dict_map.endArray(); ++dict_it)
 		{
 			const LLSD& dict = *dict_it;
-			if ( (dict["installed"].asBoolean()) && (dict.has("language")) )
+			if ( (dict["installed"].asBoolean()) && (dict["is_primary"].asBoolean()) && (dict.has("language")) )
 				dict_combo->add(dict["language"].asString());
 		}
 		if (!dict_combo->selectByValue(dict_cur))