diff --git a/indra/newview/llscreenchannel.cpp b/indra/newview/llscreenchannel.cpp
index 157821d554a152bdcdae4490aeb3f8c10123fb03..a4a019830540aafbefbfb79313caab1c076891cb 100644
--- a/indra/newview/llscreenchannel.cpp
+++ b/indra/newview/llscreenchannel.cpp
@@ -499,15 +499,16 @@ void LLScreenChannel::killToastByNotificationID(LLUUID id)
 
 void LLScreenChannel::removeToastByNotificationID(LLUUID id)
 {
-	std::vector<ToastElem>::iterator it = mToastList.begin();
+	std::vector<ToastElem>::iterator it = find(mToastList.begin(), mToastList.end(), id);
 	while( it != mToastList.end())
 	{
-		// find next toast with matching id
-		it = find(it, mToastList.end(), id);
 		deleteToast(it->getToast());
 		mToastList.erase(it);
 		redrawToasts();
+		// find next toast with matching id
+		it = find(mToastList.begin(), mToastList.end(), id);
 	}
+
 	it = find(mStoredToastList.begin(), mStoredToastList.end(), id);
 	if (it != mStoredToastList.end())
 	{