diff --git a/src/kits/interface/TextView.cpp b/src/kits/interface/TextView.cpp
index 9b2c265cb9..eefb86a7ae 100644
--- a/src/kits/interface/TextView.cpp
+++ b/src/kits/interface/TextView.cpp
@@ -4427,7 +4427,8 @@ BTextView::HandleInputMethodChanged(BMessage *message)
 	int32 clauseEnd;
 	while (message->FindInt32("be:clause_start", clauseCount, &clauseStart) == B_OK &&
 			message->FindInt32("be:clause_end", clauseCount, &clauseEnd) == B_OK) {
-		fInline->AddClause(clauseStart, clauseEnd);
+		if (!fInline->AddClause(clauseStart, clauseEnd))
+			break;
 		clauseCount++;	
 	}
 
diff --git a/src/kits/interface/textview_support/InlineInput.cpp b/src/kits/interface/textview_support/InlineInput.cpp
index e205373ca0..b1fcc4b314 100644
--- a/src/kits/interface/textview_support/InlineInput.cpp
+++ b/src/kits/interface/textview_support/InlineInput.cpp
@@ -153,12 +153,18 @@ _BInlineInput_::SetSelectionOffset(int32 offset)
 	\param start The offset into the string where the clause starts.
 	\param end The offset into the string where the clause finishes.
 */
-void
+bool
 _BInlineInput_::AddClause(int32 start, int32 end)
 {
-	fClauses = (clause *)realloc(fClauses, ++fNumClauses * sizeof(clause));
-	fClauses[fNumClauses - 1].start = start;
-	fClauses[fNumClauses - 1].end = end;
+	void *newData = realloc(fClauses, (fNumClauses + 1) * sizeof(clause));
+	if (newData == NULL)
+		return false;
+
+	fClauses = (clause *)newData;
+	fClauses[fNumClauses].start = start;
+	fClauses[fNumClauses].end = end;
+	fNumClauses++;
+	return true;
 }
 
 
diff --git a/src/kits/interface/textview_support/InlineInput.h b/src/kits/interface/textview_support/InlineInput.h
index 645aec91e3..b787f66605 100644
--- a/src/kits/interface/textview_support/InlineInput.h
+++ b/src/kits/interface/textview_support/InlineInput.h
@@ -34,7 +34,7 @@ public:
 	int32 SelectionOffset() const;
 	void SetSelectionOffset(int32 offset);
 	
-	void AddClause(int32, int32);
+	bool AddClause(int32, int32);
 	bool GetClause(int32 index, int32 *start, int32 *end) const;
 	int32 CountClauses() const;