diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp
index c08ca30babec38c30f5b5f395249ecd0b095c939..be487705674f7a376e1b65b426629bf45021dda5 100644
--- a/indra/newview/llnearbychathandler.cpp
+++ b/indra/newview/llnearbychathandler.cpp
@@ -274,6 +274,13 @@ void LLNearbyChatScreenChannel::showToastsBottom()
 			toast->setRect(toast_rect);
 			toast->setIsHidden(false);
 			toast->setVisible(TRUE);
+
+			if(!toast->hasFocus())
+			{
+				// Fixing Z-order of toasts (EXT-4862)
+				// Next toast will be positioned under this one.
+				gFloaterView->sendChildToBack(toast);
+			}
 			
 			bottom = toast->getRect().mTop;
 		}		
diff --git a/indra/newview/llscreenchannel.cpp b/indra/newview/llscreenchannel.cpp
index 8f36c0e88aba0fdcabdd9cd640b6536e2d5167cd..7c2e7e3319ebcba88b31771821869f27eb2d5ba6 100644
--- a/indra/newview/llscreenchannel.cpp
+++ b/indra/newview/llscreenchannel.cpp
@@ -533,9 +533,13 @@ void LLScreenChannel::showToastsBottom()
 			// HACK
 			// EXT-2653: it is necessary to prevent overlapping for secondary showed toasts
 			(*it).toast->setVisible(TRUE);
-			// Show toast behind floaters. (EXT-3089)
-			gFloaterView->sendChildToBack((*it).toast);
 		}		
+		if(!(*it).toast->hasFocus())
+		{
+			// Fixing Z-order of toasts (EXT-4862)
+			// Next toast will be positioned under this one.
+			gFloaterView->sendChildToBack((*it).toast);
+		}
 	}
 
 	if(it != mToastList.rend())