diff --git a/indra/newview/lltoast.cpp b/indra/newview/lltoast.cpp
index 22b12ee132df2f557260902e3d7e169872902965..568cd4cb1966ee5390bcfbdfb9cdf87a4e5a23c2 100644
--- a/indra/newview/lltoast.cpp
+++ b/indra/newview/lltoast.cpp
@@ -67,6 +67,7 @@ LLToast::Params::Params()
 LLToast::LLToast(const LLToast::Params& p) 
 :	LLModalDialog(LLSD(), p.is_modal),
 	mPanel(p.panel), 
+	mToastLifetime(p.lifetime_secs),
 	mToastFadingTime(p.fading_time_secs),
 	mNotificationID(p.notif_id),  
 	mSessionID(p.session_id),
@@ -241,6 +242,13 @@ void LLToast::draw()
 			drawChild(mHideBtn);
 		}
 	}
+
+	// if timer started and remaining time <= fading time
+	if (mTimer->getStarted() && (mToastLifetime
+			- mTimer->getEventTimer().getElapsedTimeF32()) <= mToastFadingTime)
+	{
+		setBackgroundOpaque(FALSE);
+	}
 }
 
 //--------------------------------------------------------------------------
diff --git a/indra/newview/lltoast.h b/indra/newview/lltoast.h
index 4a213580da672fa4972ccc28c32d7bd1fd89d754..4211f21ef160b574621be826a084fa35545904cd 100644
--- a/indra/newview/lltoast.h
+++ b/indra/newview/lltoast.h
@@ -209,6 +209,7 @@ class LLToast : public LLModalDialog
 	// timer counts a lifetime of a toast
 	std::auto_ptr<LLToastLifeTimer> mTimer;
 
+	F32			mToastLifetime; // in seconds
 	F32			mToastFadingTime; // in seconds
 
 	LLPanel*		mPanel;