Index: /trunk/src/org/expeditee/actions/Simple.java
===================================================================
--- /trunk/src/org/expeditee/actions/Simple.java	(revision 408)
+++ /trunk/src/org/expeditee/actions/Simple.java	(revision 409)
@@ -329,7 +329,12 @@
 		try {
 			if (current != null) {
-				DisplayIO.addToBack(current.getParent());
+				/*
+				 * Changed the code from the line below because it caused
+				 * problems when the "RunFrame" item was on the zero frame
+				 */
+				// DisplayIO.addToBack(current.getParent());
+				DisplayIO.addToBack(DisplayIO.getCurrentFrame());
 			} else {
-				/*TODO we should not have to pass an item just to run a frame!*/
+				/* TODO we should not have to pass an item just to run a frame! */
 				current = new Text("Dummy");
 				current.setLink(frame.getName());
@@ -2456,8 +2461,8 @@
 			pause(context.getPrimitives().getDoubleValue(lengthVar));
 		} else if (tokens[0].equals("waitforagent")) {
-			while(DefaultAgent.isAgentRunning()){
+			while (DefaultAgent.isAgentRunning()) {
 				Thread.sleep(100);
 			}
-		}else if (tokens[0].equals("glidecursorto")) {
+		} else if (tokens[0].equals("glidecursorto")) {
 			assertMinParametreCount(tokens, 2);
 			int finalX = (int) context.getPrimitives().getIntegerValue(
Index: /trunk/src/org/expeditee/agents/mail/MailSession.java
===================================================================
--- /trunk/src/org/expeditee/agents/mail/MailSession.java	(revision 408)
+++ /trunk/src/org/expeditee/agents/mail/MailSession.java	(revision 409)
@@ -156,10 +156,9 @@
 		try {
 			if (!_transport.isConnected()) {
-				Text message = MessageBay
-						.displayMessage("Connecting to SMTP server...");
+				// MessageBay.displayMessage("Connecting to SMTP server...");
 				_bConnecting = true;
 				_transport.connect();
-				message.setAttributeValue("SMTP server connected");
-				message.setColor(Color.green);
+				// MessageBay.displayMessage("SMTP server connected",
+				// Color.green);
 			} else {
 				MessageBay.warningMessage("SMTP server already connected");
@@ -171,6 +170,6 @@
 		if (_mailServer != null && !_store.isConnected()) {
 			try {
-				Text message = MessageBay.displayMessage("Connecting to "
-						+ _mailServer + "...");
+				// Text message = MessageBay.displayMessage("Connecting to "
+				// + _mailServer + "...");
 				_store.connect(_mailServer, _username, _password);
 
@@ -228,6 +227,6 @@
 				}.start();
 
-				message.setAttributeValue("Connection complete");
-				message.setColor(Color.GREEN);
+				MessageBay.displayMessage("Mail connection complete",
+						Color.GREEN);
 
 				displayUnreadMailCount();
@@ -601,5 +600,5 @@
 				if (nextText.charAt(nextText.length() - 1) == '\n')
 					nextText = nextText.substring(0, nextText.length() - 1);
-				//TODO: Make the space a setting in frame creator
+				// TODO: Make the space a setting in frame creator
 				frames.addSpace(10);
 				frames.addText(nextText, null, null, null, false);
Index: /trunk/src/org/expeditee/gui/FrameUtils.java
===================================================================
--- /trunk/src/org/expeditee/gui/FrameUtils.java	(revision 408)
+++ /trunk/src/org/expeditee/gui/FrameUtils.java	(revision 409)
@@ -364,5 +364,6 @@
 	 *            False otherwise
 	 */
-	public static void DisplayFrame(Frame toDisplay, boolean addToBack, boolean incrementStats) {
+	public static void DisplayFrame(Frame toDisplay, boolean addToBack,
+			boolean incrementStats) {
 		if (toDisplay == null)
 			return;
@@ -451,5 +452,6 @@
 	 *            false otherwise
 	 */
-	public static void DisplayFrame(String frameName, boolean addToBack, boolean incrementStats) {
+	public static void DisplayFrame(String frameName, boolean addToBack,
+			boolean incrementStats) {
 		Frame newFrame = getFrame(frameName);
 
@@ -693,7 +695,11 @@
 				}
 			} catch (Exception e) {
-				e.printStackTrace();
-				errors.add("Error parsing [" + item.getText() + "] on "
-						+ profile.getName());
+				if (e.getMessage() != null) {
+					errors.add(e.getMessage());
+				} else {
+					e.printStackTrace();
+					errors.add("Error parsing [" + item.getText() + "] on "
+							+ profile.getName());
+				}
 			}
 		}
@@ -786,11 +792,8 @@
 					return name + File.separator;
 			} else {
-				MessageBay.errorMessage("Directory not found: " + name);
-			}
-		} else {
-			MessageBay.warningMessage("Missing value for profile attribute"
-					+ name);
-		}
-		return null;
+				throw new RuntimeException("Directory not found: " + name);
+			}
+		}
+		throw new RuntimeException("Missing value for profile attribute" + name);
 	}
 
Index: /trunk/src/org/expeditee/gui/MessageBay.java
===================================================================
--- /trunk/src/org/expeditee/gui/MessageBay.java	(revision 408)
+++ /trunk/src/org/expeditee/gui/MessageBay.java	(revision 409)
@@ -24,4 +24,5 @@
 public final class MessageBay {
 
+
 	public static final int MESSAGE_BUFFER_HEIGHT = 100;
 
@@ -102,9 +103,9 @@
 	}
 
-	public static void addDirtyArea(Rectangle r) {
+	public synchronized static void addDirtyArea(Rectangle r) {
 		_dirtyAreas.add(r);
 	}
 
-	static int getMessageBufferHeight() {
+	static synchronized int getMessageBufferHeight() {
 		if (_messageBuffer != null)
 			return _messageBuffer.getHeight();
@@ -112,17 +113,17 @@
 	}
 
-	public static Item getMessageLink() {
+	public synchronized static Item getMessageLink() {
 		return _messageLink;
 	}
 
-	public static Text[] getMessages() {
+	public synchronized static Text[] getMessages() {
 		return _messages;
 	}
 
-	public static boolean isDirty() {
+	public synchronized static boolean isDirty() {
 		return !_dirtyAreas.isEmpty();
 	}
 
-	public static void invalidateFullBay() {
+	public synchronized static void invalidateFullBay() {
 		if (_messageBuffer != null) {
 			_dirtyAreas.clear();
@@ -133,5 +134,5 @@
 	}
 
-	private static boolean initBuffer() {
+	private synchronized static boolean initBuffer() {
 		if (_messageBuffer == null) {
 			if (FrameGraphics.isAudienceMode()
@@ -259,5 +260,5 @@
 	}
 
-	public static Text displayMessage(String message, String link, Color color,
+	public synchronized static Text displayMessage(String message, String link, Color color,
 			boolean displayAlways, String action) {
 		List<String> actions = new LinkedList<String>();
@@ -267,5 +268,5 @@
 	}
 
-	public static Text displayMessage(String message, String link,
+	public synchronized static Text displayMessage(String message, String link,
 			List<String> actions, Color color, boolean displayAlways) {
 
@@ -345,9 +346,9 @@
 	}
 
-	public static void overwriteMessage(String message) {
+	public synchronized static void overwriteMessage(String message) {
 		overwriteMessage(message, null);
 	}
 
-	public static void overwriteMessage(String message, Color color) {
+	public synchronized static void overwriteMessage(String message, Color color) {
 		for (int ind = _messages.length - 1; ind >= 0; ind--) {
 			if (_messages[ind] != null) {
@@ -377,5 +378,5 @@
 	 *            the message to be displayed
 	 */
-	public static Text linkedErrorMessage(String message) {
+	public synchronized static Text linkedErrorMessage(String message) {
 		if (_supressMessages)
 			return null;
@@ -388,5 +389,5 @@
 	}
 
-	public static Text errorMessage(String message) {
+	public synchronized static Text errorMessage(String message) {
 		if (_supressMessages)
 			return null;
@@ -402,18 +403,18 @@
 	 *            The message to display to the user in the message area
 	 */
-	public static Text displayMessage(String message) {
+	public synchronized static Text displayMessage(String message) {
 		return displayMessageAlways(message);
 	}
 
-	public static Text displayMessageOnce(String message) {
+	public synchronized static Text displayMessageOnce(String message) {
 		return displayMessage(message, null, null, Color.BLACK, false);
 	}
 
-	public static Text displayMessage(String message, Color textColor) {
+	public synchronized static Text displayMessage(String message, Color textColor) {
 		return displayMessage(message, null, null, textColor);
 		// Misc.Beep();
 	}
 
-	public static Text displayMessage(Text message) {
+	public synchronized static Text displayMessage(Text message) {
 		Text t = null;
 		String link = message.getLink();
@@ -427,15 +428,15 @@
 	}
 
-	public static Text displayMessageAlways(String message) {
+	public synchronized static Text displayMessageAlways(String message) {
 		return displayMessage(message, null, null, Color.BLACK);
 		// Misc.Beep();
 	}
 
-	public static Text warningMessage(String message) {
+	public synchronized static Text warningMessage(String message) {
 		return displayMessage(message, null, null, Color.MAGENTA);
 		// Misc.Beep();
 	}
 
-	public static void supressMessages(boolean val) {
+	public synchronized static void supressMessages(boolean val) {
 		_supressMessages = val;
 	}
