diff --git a/indra/llui/lllineeditor.cpp b/indra/llui/lllineeditor.cpp
index acdcd38c24c3a8a898397b100106d6ac3a46c53a..8fc0465acf33d09012a759fcbe054a7fe0ec692d 100644
--- a/indra/llui/lllineeditor.cpp
+++ b/indra/llui/lllineeditor.cpp
@@ -1889,7 +1889,7 @@ void LLLineEditor::draw()
 		// Calculate start and end indices for the first and last visible word
 		U32 start = prevWordPos(mScrollHPos), end = nextWordPos(mScrollHPos + rendered_text);
 
-		if ( (mSpellCheckStart != start) || (mSpellCheckEnd = end) )
+		if ( (mSpellCheckStart != start) || (mSpellCheckEnd != end) )
 		{
 			const LLWString& text = mText.getWString().substr(start, end);
 
@@ -1911,7 +1911,7 @@ void LLLineEditor::draw()
 				{
 					word_end++;
 				}
-				if (word_end >= text.length())
+				if (word_end > text.length())
 					break;
 
 				// Don't process words shorter than 3 characters
diff --git a/indra/llui/llspellcheck.cpp b/indra/llui/llspellcheck.cpp
index aa39e21a96c759da5732303a1664eafdc28aa912..bde3b56741000ab6794cc500fbbeea48d08d0b24 100644
--- a/indra/llui/llspellcheck.cpp
+++ b/indra/llui/llspellcheck.cpp
@@ -142,7 +142,7 @@ void LLSpellChecker::addToIgnoreList(const std::string& word)
 {
 	std::string word_lower(word);
 	LLStringUtil::toLower(word_lower);
-	if (mIgnoreList.end() != std::find(mIgnoreList.begin(), mIgnoreList.end(), word_lower))
+	if (mIgnoreList.end() == std::find(mIgnoreList.begin(), mIgnoreList.end(), word_lower))
 	{
 		mIgnoreList.push_back(word_lower);
 		addToDictFile(getDictionaryUserPath() + mDictFile + DICT_IGNORE_SUFFIX + ".dic", word_lower);