Index: src/java/org/jivesoftware/sparkimpl/plugin/alerts/InfoToaster.java
===================================================================
--- src/java/org/jivesoftware/sparkimpl/plugin/alerts/InfoToaster.java	(revision 0)
+++ src/java/org/jivesoftware/sparkimpl/plugin/alerts/InfoToaster.java	(revision 0)
@@ -0,0 +1,34 @@
+package org.jivesoftware.sparkimpl.plugin.alerts;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.GridBagConstraints;
+import java.awt.Insets;
+import java.awt.Window;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+
+import javax.swing.BorderFactory;
+import javax.swing.Icon;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import org.jivesoftware.sparkimpl.plugin.alerts.SparkToaster.SingleToaster;
+import org.jivesoftware.sparkimpl.plugin.alerts.SparkToaster.TitleLabel;
+
+
+public class InfoToaster extends SparkToaster {
+	
+
+    
+	public InfoToaster() {
+		super();
+	}
+
+}
+
+	
+
+
+
Index: src/java/org/jivesoftware/sparkimpl/plugin/alerts/BroadcastPlugin.java
===================================================================
--- src/java/org/jivesoftware/sparkimpl/plugin/alerts/BroadcastPlugin.java	(revision 10980)
+++ src/java/org/jivesoftware/sparkimpl/plugin/alerts/BroadcastPlugin.java	(working copy)
@@ -45,9 +45,11 @@
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Component;
+import java.awt.TextArea;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -198,7 +200,8 @@
                         showAlert((Message)packet);
                     }
                     else if (message.getType() == Message.Type.headline && message.getBody() != null) {
-                        SparkToaster toaster = new SparkToaster();
+                        InfoToaster toaster = new InfoToaster();
+                        
                         toaster.setDisplayTime(30000);
                         toaster.setBorder(BorderFactory.createBevelBorder(0));
                         toaster.setTitle(Res.getString("title.notification"));
@@ -253,29 +256,15 @@
         p.setBorder(BorderFactory.createLineBorder(Color.lightGray));
 
 
-        SparkToaster toaster = new SparkToaster();
-        toaster.setDisplayTime(30000);
+        InfoToaster toaster = new InfoToaster();
+        toaster.setDisplayTime(30000); 
         toaster.setBorder(BorderFactory.createBevelBorder(0));
+        
 
 
         if (!from.contains("@")) {
-            ChatManager chatManager = SparkManager.getChatManager();
-            ChatContainer container = chatManager.getChatContainer();
-
-            ChatRoomImpl chatRoom;
-            try {
-                chatRoom = (ChatRoomImpl)container.getChatRoom(from);
-            }
-            catch (ChatRoomNotFoundException e) {
-                chatRoom = new ChatRoomImpl("serveralert@" + from, Res.getString("broadcast"), Res.getString("broadcast"));
-                chatRoom.getBottomPanel().setVisible(false);
-                chatRoom.getToolBar().setVisible(false);
-                SparkManager.getChatManager().getChatContainer().addChatRoom(chatRoom);
-            }
-
-
-            chatRoom.insertMessage(message);
-            broadcastRooms.add(chatRoom);
+        	toaster.setTitle(Res.getString("message.broadcast.from.server"));
+        	toaster.showToaster(buf.toString());
         }
         else if (message.getFrom() != null) {
             String jid = StringUtils.parseBareAddress(from);
@@ -280,42 +269,9 @@
         else if (message.getFrom() != null) {
             String jid = StringUtils.parseBareAddress(from);
             String nickname = SparkManager.getUserManager().getUserNicknameFromJID(jid);
-            ChatManager chatManager = SparkManager.getChatManager();
-            ChatContainer container = chatManager.getChatContainer();
-
-            ChatRoomImpl chatRoom;
-            try {
-                chatRoom = (ChatRoomImpl)container.getChatRoom(jid);
-            }
-            catch (ChatRoomNotFoundException e) {
-                chatRoom = new ChatRoomImpl(jid, nickname, nickname);
-                SparkManager.getChatManager().getChatContainer().addChatRoom(chatRoom);
-            }
-
-            chatRoom.insertMessage(message);
-            broadcastRooms.add(chatRoom);
-
-            chatRoom.addMessageListener(new MessageListener() {
-                boolean waiting = true;
-
-                public void messageReceived(ChatRoom room, Message message) {
-                    removeAsBroadcast(room);
-                }
-
-                public void messageSent(ChatRoom room, Message message) {
-                    removeAsBroadcast(room);
-                }
-
-                private void removeAsBroadcast(ChatRoom room) {
-                    if (waiting) {
-                        broadcastRooms.remove(room);
-
-                        // Notify decorators
-                        SparkManager.getChatManager().notifySparkTabHandlers(room);
-                        waiting = false;
-                    }
-                }
-            });
+            toaster.setTitle(Res.getString("message.broadcast.from", nickname));
+        	toaster.showToaster(buf.toString());
+            
         }
     }
 
Index: src/java/org/jivesoftware/sparkimpl/plugin/alerts/InfoScreen.java
===================================================================
--- src/java/org/jivesoftware/sparkimpl/plugin/alerts/InfoScreen.java	(revision 0)
+++ src/java/org/jivesoftware/sparkimpl/plugin/alerts/InfoScreen.java	(revision 0)
@@ -0,0 +1,80 @@
+package org.jivesoftware.sparkimpl.plugin.alerts;
+
+import java.awt.Dimension;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.GridLayout;
+import java.awt.Insets;
+import java.awt.Rectangle;
+import java.awt.ScrollPane;
+import java.awt.Scrollbar;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+import javax.swing.ScrollPaneConstants;
+
+public class InfoScreen extends JFrame{
+	
+	public InfoScreen(String title,JTextArea message, Object toaster){		
+		super();
+		if(toaster instanceof InfoToaster){
+			
+			this.setTitle(title);
+			this.setAlwaysOnTop(true);
+			int minX = 500;
+			int minY = 300;
+			Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+			this.setMinimumSize(new Dimension(minX,minY));
+			this.setMaximumSize(screenSize);
+			JPanel mainPanel = new JPanel();
+			mainPanel.setLayout(new GridBagLayout());
+			JTextArea textArea = new JTextArea(message.getText());
+			textArea.setEditable(false);
+			textArea.setWrapStyleWord(true);
+			textArea.setLineWrap(true);
+			textArea.setMargin(new Insets(5,5,5,5));
+			JScrollPane scrollPane = new JScrollPane(textArea);
+			scrollPane.setAutoscrolls(true);
+			scrollPane.setMaximumSize(new Dimension(600,400));
+			scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+			scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
+			JButton okButton = new JButton("OK");
+			okButton.setBounds(new Rectangle(30,30));
+			okButton.addActionListener(new CloseScreen());
+			mainPanel.add(scrollPane, 
+					new GridBagConstraints(0,0,1,2,
+					textArea.getPreferredSize().getWidth(),
+					textArea.getPreferredSize().getHeight(),
+					GridBagConstraints.CENTER,GridBagConstraints.BOTH,
+					new Insets(5,5,5,5),0,0));
+			mainPanel.add(okButton, new GridBagConstraints(0,2,1,1,50,
+					30,GridBagConstraints.CENTER, GridBagConstraints.NONE,
+					new Insets(5,5,5,5),0,0));
+			this.add(mainPanel);
+			double y = (screenSize.getHeight() - minY)/2;
+			double x = (screenSize.getWidth() - minX)/2;
+			Rectangle bounds = new Rectangle();
+			bounds.setBounds((int)x, (int)y, (int)minX, (int)minY);
+			this.setBounds(bounds);
+			this.setVisible(true);
+		}else{
+			dispose();
+		}
+	}
+	
+	private class CloseScreen implements ActionListener
+	{   public void actionPerformed (ActionEvent e)
+	    {  
+			dispose();
+	    }
+	}
+
+}
Index: src/java/org/jivesoftware/sparkimpl/plugin/alerts/SparkToaster.java
===================================================================
--- src/java/org/jivesoftware/sparkimpl/plugin/alerts/SparkToaster.java	(revision 10980)
+++ src/java/org/jivesoftware/sparkimpl/plugin/alerts/SparkToaster.java	(working copy)
@@ -161,6 +161,8 @@
 
         // Text area for the message
         private JTextArea message = new JTextArea();
+        
+        Object globalToaster;
 
         /**
          * Simple costructor that initialized components...
@@ -165,8 +167,9 @@
         /**
          * Simple costructor that initialized components...
          */
-        public SingleToaster() {
+        public SingleToaster(SparkToaster toaster) {
             initComponents();
+            globalToaster = toaster;
         }
 
         /**
@@ -230,7 +233,8 @@
                 if (customAction != null) {
                     customAction.actionPerformed(null);
                 }
-
+                InfoScreen infoWindow = new InfoScreen(getTitle(),message, globalToaster);
+     
                 if (hideable) {
                     setVisible(false);
                     dispose();
@@ -366,7 +370,7 @@
      * @param msg Message to show in toaster popup.
      */
     public void showToaster(Icon icon, String msg) {
-        SingleToaster singleToaster = new SingleToaster();
+        SingleToaster singleToaster = new SingleToaster(this);
         final JScrollPane pane = new JScrollPane(singleToaster.message);
         pane.setOpaque(false);
         pane.setBorder(BorderFactory.createEmptyBorder());
@@ -390,7 +394,7 @@
      * @param comp Component to add to toaster popup
      */
     public void showToaster(String title, Component comp) {
-        SingleToaster singleToaster = new SingleToaster();
+        SingleToaster singleToaster = new SingleToaster(this);
         mainPanel.add(comp, new GridBagConstraints(1, 2, 3, 1, 1.0, 1.0, GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(2, 0, 0, 0), 0, 0));
 
         titleLabel.setTitle(title);
@@ -399,7 +403,7 @@
     }
 
     public void showToaster(Icon icon) {
-        SingleToaster singleToaster = new SingleToaster();
+        SingleToaster singleToaster = new SingleToaster(this);
         if (icon != null) {
             titleLabel.setIcon(icon);
         }
@@ -408,7 +412,7 @@
     }
 
     public void showToaster() {
-        SingleToaster singleToaster = new SingleToaster();
+        SingleToaster singleToaster = new SingleToaster(this);
         singleToaster.animate();
         window = singleToaster;
     }
Index: src/resources/i18n/spark_i18n_de.properties
===================================================================
--- src/resources/i18n/spark_i18n_de.properties	(revision 10980)
+++ src/resources/i18n/spark_i18n_de.properties	(working copy)
@@ -424,6 +424,7 @@
 message.your.revoked.granted = Ihre Administratorenrechte wurden widerufen.
 message.send.a.broadcast = Rundnachricht senden
 message.broadcast.from = Rundnachricht von {0}
+message.broadcast.from.server = Rundnachricht vom Server
 message.enter.message.to.broadcast = Eine Nachricht an alle Teilnehmer Ihrer Kontaktliste senden.
 message.broadcast.message.sent = Die Rundnachricht wurde versendet.
 message.broadcast.to = Eine Rundnachricht eingeben für {0}
Index: src/resources/i18n/spark_i18n.properties
===================================================================
--- src/resources/i18n/spark_i18n.properties	(revision 10980)
+++ src/resources/i18n/spark_i18n.properties	(working copy)
@@ -545,6 +545,7 @@
 message.away.idle = Away due to idle.
 message.bookmark.temporary.room.error = You cannot bookmark temporary rooms
 message.broadcast.from = Broadcast from {0}
+message.broadcast.from.server = Broadcast from server
 message.broadcast.message.sent = The broadcast message has been sent.
 message.broadcast.to = Enter message to broadcast to {0}
 message.broadcasted.to = The message has been broadcasted to the following users:\n{0}
