Index: /trunk/src/org/expeditee/gui/AttributeUtils.java
===================================================================
--- /trunk/src/org/expeditee/gui/AttributeUtils.java	(revision 706)
+++ /trunk/src/org/expeditee/gui/AttributeUtils.java	(revision 707)
@@ -266,5 +266,5 @@
 			                                    Item.class.getMethod("setY", pFloat));
 			_Attrib.put("Tooltip",              Item.class.getMethod("getTooltip"),
-			                                    Item.class.getMethod("setTooltip", pString));
+			                                    Item.class.getMethod("setTooltips", pList));
 			
 			// Text Items
@@ -285,4 +285,5 @@
 			_Attrib.alias("d",                  "data");
 			_Attrib.alias("f",                  "formula");
+			_Attrib.alias("font",               "family");
 			_Attrib.alias("s",                  "size");
 			_Attrib.alias("l",                  "link");
@@ -363,5 +364,4 @@
 				try {
 					String s = getValue(prop, a, toExtract, true);
-
 					if (s == null)
 						continue;
@@ -573,5 +573,5 @@
 					if (nextAvp.getAttribute().equals(avp.getAttribute())) {
 						// strip the attribute from next
-						avp.appendValue(nextAvp.getValue());
+						avp.appendValue(nextAvp.getValue() + "\n");
 
 						// if the attribute is not the same, then it may be a
Index: /trunk/src/org/expeditee/gui/AttributeValuePair.java
===================================================================
--- /trunk/src/org/expeditee/gui/AttributeValuePair.java	(revision 706)
+++ /trunk/src/org/expeditee/gui/AttributeValuePair.java	(revision 707)
@@ -9,4 +9,6 @@
 
 	public static final char VALUE_SEPARATOR_CHAR = ' ';
+	
+	public static final char VALUE_DELIM_CHAR = '\n';
 
 	public static final String SEPARATOR_STRING = "" + SEPARATOR_CHAR
@@ -165,5 +167,5 @@
 			_value = new SString(value.trim());
 		else
-			_value.parse(_value.stringValue() + VALUE_SEPARATOR_CHAR
+			_value.parse(_value.stringValue() + VALUE_DELIM_CHAR
 					+ value.trim());
 	}
Index: /trunk/src/org/expeditee/io/DefaultFrameWriter.java
===================================================================
--- /trunk/src/org/expeditee/io/DefaultFrameWriter.java	(revision 706)
+++ /trunk/src/org/expeditee/io/DefaultFrameWriter.java	(revision 707)
@@ -69,6 +69,5 @@
 			_ItemTags.put("s", Item.class.getMethod("getDateCreated", param));
 			_ItemTags.put("d", Item.class.getMethod("getColor", param));
-			_ItemTags.put("G", Item.class
-					.getMethod("getBackgroundColor", param));
+			_ItemTags.put("G", Item.class.getMethod("getBackgroundColor", param));
 			_ItemTags.put("K", Item.class.getMethod("getBorderColor", param));
 			_ItemTags.put("H", Item.class.getMethod("getAnchorRight", param));
@@ -114,6 +113,5 @@
 			_ItemTags.put("a", Text.class.getMethod("getWordSpacing", param));
 			_ItemTags.put("b", Text.class.getMethod("getLetterSpacing", param));
-			_ItemTags
-					.put("m", Text.class.getMethod("getInitialSpacing", param));
+			_ItemTags.put("m", Text.class.getMethod("getInitialSpacing", param));
 			_ItemTags.put("w", Text.class.getMethod("getWidthToSave", param));
 			_ItemTags.put("k", Text.class.getMethod("getJustification", param));
Index: /trunk/src/org/expeditee/items/Item.java
===================================================================
--- /trunk/src/org/expeditee/items/Item.java	(revision 706)
+++ /trunk/src/org/expeditee/items/Item.java	(revision 707)
@@ -16,4 +16,5 @@
 import java.awt.geom.Rectangle2D;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.ConcurrentModificationException;
@@ -28,4 +29,5 @@
 import org.expeditee.actions.Misc;
 import org.expeditee.actions.Simple;
+import org.expeditee.gui.AttributeUtils;
 import org.expeditee.gui.AttributeValuePair;
 import org.expeditee.gui.DisplayIO;
@@ -158,5 +160,5 @@
 	protected boolean _filled = true;
 	
-	private String _tooltip = null;
+	private List<String> _tooltip = null;
 	private static Text _tooltipItem = null;
 	private static Item _tooltipOwner = null;
@@ -178,5 +180,5 @@
 		dest.setBorderColor(source.getBorderColor());
 
-		dest.setTooltip(source.getTooltip());
+		dest.setTooltips(source.getTooltip());
 		dest.setData(source.getData());
 		dest.setTag(source.getTag());
@@ -1130,9 +1132,22 @@
 	public abstract void paint(Graphics2D g);
 	
+	public void setTooltips(List<String> tooltips) {
+		if (tooltips == null || tooltips.size() == 0) {
+			_tooltip = null;
+		} else {
+			_tooltip = new LinkedList<String>(tooltips);
+		}
+	}
+	
 	public void setTooltip(String tooltip) {
-		_tooltip = tooltip;
+		if(_tooltip == null || _tooltip.size() == 0) {
+			_tooltip = new LinkedList<String>();
+		}
+		if(tooltip != null && tooltip.trim().length() > 0) {
+			_tooltip.add(tooltip);
+		}
 	}
 	
-	public String getTooltip() {
+	public List<String> getTooltip() {
 		return _tooltip;
 	}
@@ -1149,8 +1164,21 @@
 		// generate tooltip item
 		if(_tooltipItem == null) {
-			String tooltip = getTooltip();
-			if(tooltip != null && tooltip.trim().length() != 0) {
-				_tooltipItem = (Text) getParentOrCurrentFrame().getTooltipTextItem(tooltip);
-				_tooltipItem.setWidth(300);
+			if(_tooltip != null && _tooltip.size() > 0) {
+				StringBuffer tooltip = new StringBuffer();
+				for(String t : _tooltip) {
+					tooltip.append(t).append("\n");
+				}
+				if(tooltip.length() > 0) {
+					tooltip.deleteCharAt(tooltip.length() - 1);
+				}
+				_tooltipItem = (Text) getParentOrCurrentFrame().getTooltipTextItem("");
+				for(String s : _tooltip) {
+					// set text
+					if(s.trim().toLowerCase().startsWith("text") && s.contains(":")) {
+						_tooltipItem.appendLine(s.substring(s.indexOf(':') + 1).trim());
+					} else {
+						AttributeUtils.setAttribute(_tooltipItem, new Text(s));
+					}
+				}
 			} else {
 				return;
Index: /trunk/src/org/expeditee/items/XRayable.java
===================================================================
--- /trunk/src/org/expeditee/items/XRayable.java	(revision 706)
+++ /trunk/src/org/expeditee/items/XRayable.java	(revision 707)
@@ -115,4 +115,9 @@
 	
 	@Override
+	public void setTooltips(List<String> tooltips) {
+		_source.setTooltips(tooltips);
+	}
+	
+	@Override
 	public void setTooltip(String tooltip) {
 		_source.setTooltip(tooltip);
@@ -120,5 +125,5 @@
 	
 	@Override
-	public String getTooltip() {
+	public List<String> getTooltip() {
 		return _source.getTooltip();
 	}
