--- linden-orig/indra/newview/llnotify.h	2007-09-20 12:36:50.000000000 +0200
+++ linden/indra/newview/llnotify.h	2007-09-26 19:10:19.250000000 +0200
@@ -88,7 +88,7 @@
 	/*virtual*/ void draw();
 	/*virtual*/ BOOL tick();
 
-	void moveToBack();
+	void moveToBack(BOOL getfocus = FALSE);
 
 	// Returns the rect, relative to gNotifyView, where this
 	// notify box should be placed.
--- linden-orig/indra/newview/llnotify.cpp	2007-09-20 12:36:50.000000000 +0200
+++ linden/indra/newview/llnotify.cpp	2007-09-26 19:11:14.515625000 +0200
@@ -437,7 +437,7 @@
 {
 	if (!mIsTip && getVisible() && getEnabled() && pointInView(x,y))
 	{
-		moveToBack();
+		moveToBack(TRUE);
 		return TRUE;
 	}
 
@@ -572,7 +572,7 @@
 	LLPanel::setVisible(visible);
 }
 
-void LLNotifyBox::moveToBack()
+void LLNotifyBox::moveToBack(BOOL getfocus)
 {
 	// Move this dialog to the back.
 	gNotifyBoxView->sendChildToBack(this);
@@ -584,11 +584,18 @@
 		if (gNotifyBoxView->getChildCount() > 0)
 		{
 			LLNotifyBox* front = gNotifyBoxView->getFirstNontipBox();
-			gNotifyBoxView->showOnly(front);
-			// assuming that moveToBack is only called by clicking the next button,
-			// we give focus to the next next button
-			front->mNextBtn->setFocus(TRUE);
-			gFocusMgr.triggerFocusFlash(); // TODO: it's ugly to call this here
+			if (front) 
+			{
+				gNotifyBoxView->showOnly(front);
+
+				if (getfocus) 
+				{
+					// if are called from a user interaction
+					// we give focus to the next next button
+					front->mNextBtn->setFocus(TRUE);
+					gFocusMgr.triggerFocusFlash(); // TODO: it's ugly to call this here
+				}
+			}
 		}
 	}
 }
@@ -748,7 +755,7 @@
 void LLNotifyBox::onClickNext(void* data)
 {
 	LLNotifyBox* self = static_cast<LLNotifyBox*>(data);
-	self->moveToBack();
+	self->moveToBack(TRUE);
 }
 
 // static
@@ -927,15 +934,18 @@
 
 LLNotifyBox * LLNotifyBoxView::getFirstNontipBox() const
 {
-	// assumes every child is a notify box
+	// childs are notify boxes and group-notifies
 	for(child_list_const_iter_t iter = getChildList()->begin();
 			iter != getChildList()->end();
 			iter++)
 	{
-		LLNotifyBox * box = static_cast<LLNotifyBox*>(*iter);
-		if(!box->isTip() && !box->isDead())
+		if ((*iter)->getName()!="groupnotify") 
 		{
-			return box;
+			LLNotifyBox * box = static_cast<LLNotifyBox*>(*iter);
+			if(!box->isTip() && !box->isDead())
+			{
+				return box;
+			}
 		}
 	}
 	return NULL;
